当前位置:   article > 正文

JS中Object.setPrototypeOf()方法

setprototypeof
  1. Object.setPrototypeOf(),为现有对象设置原型,返回一个新对象
    接收两个参数:第一个是现有对象,第二是原型对象。
    2、new 命令通过构造函数新建对象实例的过程,其本质是将实例的原型,指向了构造函数的prototype属性,然后在实例上执行构造函数。
//构造函数
function Person(name) {
    this.name = name;
}

// var p = new Person("zhenglijing");
//等同于将构造函数的原型对象赋给实例对象p的属性__proto__
p.__proto__ = Object.setPrototypeOf({},Person.prototype);
Person.call(p,"zhenglijing");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
这样实例的属性__proto__就指向了构造函数的原型,这样就形成了原型链,当在实例中找不到属性或方法时,就通过原型链进行查找。
在实例中执行构造函数,构造函数就是一个普通函数,如果一个普通函数在一个对象中被执行了,那么this就是该实例。比如
  • 1
  • 2
var o = {};
function Person(name) {
    this.name = name;
}
//把构造函数放在对象o中执行,那么这个this就是o对象了,执行完后,该o对象就有了实例属性name了。
Person.call(o,"zhenglijing");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/140228
推荐阅读
相关标签
  

闽ICP备14008679号