美文网首页
2018-06-01 原型对象

2018-06-01 原型对象

作者: 忙于未来的民工 | 来源:发表于2018-06-07 18:04 被阅读0次

    1:理解原型函数

    原型函数就是只要创建了一个函数,那么根据一组特殊的规则创建一个prototype属性,这个prototype属性就是原型对象,原型对象有一个constructor属性指向构造函数本身,这个原型只会有一个constructor属性,其他的属性和方法都是从Object继承而来的.

    当使用构造函数创建了一个实例的时候,这个实例会有一个指针指向原型对象,这个指针就是[[Prototype]],在Firefox、Safari 和 Chrome 中这个指针就是__proto__,只有在这三个浏览器中是可见的

    虽然__proto__是不可访问的,但是可以通过方法访问到

    isPrototypeOf(): 这个方法可以判断对象之间是否有关系,

    原型对象.isPrototypeOf(实例对象)

    例子:

    var person1 = new Person()

    Person.prototype.isPrototypeOf(person1) // true

    Object.getPrototypeOf(): 这个方法可以得到实例对象的原型对象

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

    hasOwnProperty(): 这个方法可以检测一个属性是存在于实例中,还是存在于原型中,在实例中返回true

    in 这个操作符也是查询属性是否存在于对象上,只不过这个属性无论是在实例上还是在原型上,都是返回true

    属性搜寻机制:

    对象o在查找属性的时候,会首先在对象o上找,如果找不到就会通过__proto__这个属性查找o的构造函数的原型对象,如果的o的构造函数的原型对象上也没有找到,那么就会在o的构造函数的原型函数的构造函数的原型对象上查找,直到查找到null为止

    相关文章

      网友评论

          本文标题:2018-06-01 原型对象

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