原型学习笔记

1、for...in... :列出对象中所有的属性,包括原型中的属性;
2、hasOwnProperty() :查询是否是对象自己的属性,不包括原型;
3、propertyIsEnumerable() :对所有的非内建对象属性返回true; //如果可以用for...in...枚举出来则返回true;
4、isPrototypeOf() :返回当前对象是否是另一个对象的原型。
 
获得原型:
ES5中   Object.getPrototypeOf()    不支持getPrototypeOf的可以用特殊属性__proto__ 。 __proto__存在IE兼容问题。
 
如果您想通过原型为某个对象添加一个新方法新属性,务必先检查一下该方法是否已经存在。
例:
    if( typeof String.prototype.trim !=== 'function' ){
        String.prototype.trim = function(){
            //代码块
        }
    }  
 
当我们重写某个对象的prototype时,需要重置相应的constructor属性。
posted @ 2015-11-09 19:22  不由分说  阅读(104)  评论(0编辑  收藏  举报