new操作符实现原理
new操作符实现原理
new :实例化一个对象,继承到构造函数的属性和方法
1 | function Foo(e){ |
打印结果为:
前置知识:
一篇文章看懂_proto_和prototype的关系及区别:https://www.jianshu.com/p/7d58f8f45557
prototype:显式原型链
每一个函数在创建之后都会自动拥有的属性,这个属性是一个指针,指向函数的原型对象;且只有函数才有
所以说 Person.prototype就是原型对象,也就是实例person1和person2的原型。
原型对象的好处是可以让所有对象实例共享它所包含的属性和方法
所以构造函数和原型之间的关系为:
__proto__
:隐式原型链
Foo.prototype –>{constructor: f Foo()}
[[prototype]]私有属性,通过proto方法访问
实例的隐式原型指向这个对象的函数的prototype(显式原型)
1 | function abc(){ |
实现原理:
1 | function Foo(e){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DoKiDoKi!