美文网首页
原型相关的方法isPrototypeOf、Object.getP

原型相关的方法isPrototypeOf、Object.getP

作者: 蘑菇不寂寞 | 来源:发表于2019-04-12 11:16 被阅读0次

    在看《高程3》第六章的《面向对象的程序设计》的原型那一节时,有一下5个函数,功能较为接近,但是又都很基础,很重要。所以在此,加以说明,以便日后复习


functionPerson(){this.age = 100}

  varperson1 =newPerson;

①isPrototypeOf()

Person.prototype.isPrototypeOf(person1);//true

②Object.getPrototypeOf()

alert(Object.getPrototypeOf(person1) == Person.prototype)//true

③hasOwnProperty()  //判断属性是否是存在于自己的实例中,如果是:返回true,如果仅仅存在自己的原型总,则返回false

person1.hasOwnProperty("age");  //fales  因为age是原型的属性,而不是自己实例的属性

④Object.keys()  //如果你想要获得所有实例属性,并仅需可枚举的,可以使用这个方法  其实和for in遍历出来的是一样的

varkeys = Object.keys(Person.prototype);  alert(keys);//"age"

⑤Object.getOwnPropertyName()  //如果你想要获得所有实例属性,无论他是否可枚举,可以使用这个方法

varkeys = Object.getOwnPropertyNames(Person.prototype);  alert(keys);//"constructor, age"

所有开发者定义的属性,均是可枚举的;

不可枚举的属性有: toLocaleString()、toString()、valueOf()、hasOwnProperty()、propertyIsEnumerable()  es5将constructor和prototype的 [ [ Enumerable ] ] = false ,即可枚举属性设置为了 false

相关文章

网友评论

      本文标题:原型相关的方法isPrototypeOf、Object.getP

      本文链接:https://www.haomeiwen.com/subject/oagqwqtx.html