prototype属性简介
来源:互联网 发布:阿里云怎么打开端口 编辑:程序博客网 时间:2024/06/06 19:23
prototype为对象原型的意思,在JS中配置对象的prototype属性,可以减少js内存空间的占用,提高js的性能。
使用示例:
1、若设置 cat.age=3; 则只有猫这个实例的年龄为3。与其相似的还有对原型方法的重写,只有猫实例生效。
2、若设置 Animal.prototype.age=3; 则所有动物实例的年龄为3。与其相似的还有对原型方法的重写,所有动物实例都生效。
3、若设置 cat.style.push('吃饭'); 则所有动物的arr都会进行改变。(注意)
4、若想添加新的原型属性或方法,任意位置直接添加即可,但要注意其会对其它实例产生影响。
Object.prototype.property相较于Object.property的优点为:前者声明的属性或方法只创建一次,不会像后者随着每次实例的创建而创建,从而节省了大量js内存,提升了js的性能。
如果不想使用Object.prototype.property,也可以使用外部方法来实现Object.prototype.property的功能,如下所示:
备注:可以使用 object.hasOwnProperty(property); 来判断已知属性为该实例的私有属性还是原型属性。
所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
使用示例:
function Animal(name){this.name=name;}Animal.prototype.style=['毛色','几条腿'];Animal.prototype.age=1;Animal.prototype.show=function(){console.log("我是:"+this.name+",今年"+this.age+"岁,我有以下特点:"); //引用时,无论是否为原型变量,for(var index in this.style){ //都要为this.propertyconsole.log(this.style[index]);}}//创建实例var dog=new Animal('狗');var cat=new Animal('猫');dog.show();cat.show();备注:
1、若设置 cat.age=3; 则只有猫这个实例的年龄为3。与其相似的还有对原型方法的重写,只有猫实例生效。
2、若设置 Animal.prototype.age=3; 则所有动物实例的年龄为3。与其相似的还有对原型方法的重写,所有动物实例都生效。
3、若设置 cat.style.push('吃饭'); 则所有动物的arr都会进行改变。(注意)
4、若想添加新的原型属性或方法,任意位置直接添加即可,但要注意其会对其它实例产生影响。
Object.prototype.property相较于Object.property的优点为:前者声明的属性或方法只创建一次,不会像后者随着每次实例的创建而创建,从而节省了大量js内存,提升了js的性能。
如果不想使用Object.prototype.property,也可以使用外部方法来实现Object.prototype.property的功能,如下所示:
function ma(name,age){this.name=name;this.age=age;this.show=method;}function method(){console.log("我的名字是:"+this.name+",我的年龄是:"+this.age);}实现的功能一样,但是不利于重写和维护。
备注:可以使用 object.hasOwnProperty(property); 来判断已知属性为该实例的私有属性还是原型属性。
所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
eg. dog.food='骨头';dog.hasOwnProperty('name'); //truedog.hasOwnProperty('food'); //truedog.hasOwnProperty('age'); //false
阅读全文
0 0
- prototype属性简介
- Prototype 简介
- prototype简介
- prototype属性
- prototype.js简介- - [转]
- Prototype 框架简介
- prototype框架的简介
- JavaScript:prototype属性使用说明
- JavaScript:prototype属性使用说明
- JavaScript:prototype属性使用说明
- JavaScript:prototype属性使用说明
- JavaScript:prototype属性使用方法
- prototype 属性使用说明
- javascript的prototype属性
- JavaScript:prototype属性使用说明
- prototype属性使用说明
- JavaScript prototype 属性
- Javascript 之prototype属性
- maven编译时跳过单元测试
- 项目遇到的一些问题 实现思路
- 每个人都走在自己的时区里
- pyspider 操作
- Android适配语言
- prototype属性简介
- 文章标题
- c#使用vr box 手柄开发
- 深度学习中的数学—Lecture 1(1)
- linux 输出重定向,管道,cut,grep,wc,sort
- solr三种解析器的通用参数
- RANSAC算法详解
- soj.1150 简单魔块
- 【java】Java常考面试题(学习笔记)