javascript面向对象编程-原型(笔记4)

来源:互联网 发布:linux apt-get卸载 编辑:程序博客网 时间:2024/05/19 22:46

1、在JavaScript中,函数本身也是一个包含了方法和属性的对象

2、原型prototype的属性和方法可以随时修改

3、如果在一个对象自身属性中没有找到指定的属性,就会使用(如果存在的话)原型链中查找到的相关属性(对象自身属性的优先级高于原型属性)

4、通过hasOwnProperty()方法判断一个属性是自身属性还是原型prototype属性

5、并不是所有的属性都会在for-in循环中显示,那些被显示的属性被称为是可枚举的,通过各个对象提供的propertyIsEnumerable()方法来判断对象的某个属性是否可枚举!

6、isPrototype()方法告诉我们当前对象是否是另一个对象 的原型!

7、Object.getPrototypeOf()方法获取对象的原型(部分浏览器实现了此功能)

8、在javaScript中,内建对象的构造器函数(如:Array、String、Object和Function)都是可以通过其原型来进行扩展的。这意味着,可以在数组原型中添加新的方法,就可以使其在所有的数组中可用!

9、如果想通过原型为某个对象添加一个新属性,务必先检查一下该属性是否已经存在 这样会增加脚本对于未来环境的适应能力 例子:

if(typeof String.prototype.trim !=== 'function'){

String.prototype.trim=function(){

return this.replace(/^\s+|\s+&/g, ' ');

};

}

10、当重写某对象的prototype时,需要重置相应的constructor属性。例子:

function Dog(){}

Dog.prototype={};

new Dog().constructor===Dog;    false

Dog.prototype.consturctor=Dog;

new Dog().constructor===Dog;   true

0 0
原创粉丝点击