new
当你执行
实际上是
1.创建了一个空对象。 2.将空对象的proto属性=要实例化对象的 prototype。 3.为此对象添加属性 name age like 等(只针对例子)。 4.返回此对象。
实现代码
创建一个全新的对象
这个对象被执行【【prototype】】连接
将这个对象绑定到构造函数中的 this
如果函数没有返回其他对象, 则 new 操作符调用的函数则会返回这个对象
可以看出,在 new 执行过程中的第三步, 会对函数调用的 this 进行修改。 在我们简易版的 bind 函数里, 原函数调用中的 this 永远执行制定的对象, 而不能根据如果是 new 调用而绑定到 new 创建的对象。 所以,我们要对原函数的调用进行判断, 是否是 new 调用。
最后更新于
这有帮助吗?