由于Object.create()
也返回一个新对象,因此
B.prototype = new A()
和
B.prototype = Object.create(A.prototype)
同样的事情?如果没有,有什么区别?
答案 0 :(得分:4)
这并不是完全相同的事情,因为当您这样做时:B.prototype = Object.create(A.prototype)
您正在使用对象的系统构造函数创建与对象A相同的对象B.这种方法不会调用A()构造函数。
但是当你执行B.prototype = new A()
时,你正在调用A元素的构造函数,你可以在A的构造函数中获得一些其他函数/做法,可以改变其中的数据。
此外,如果条件被填充,A()构造函数可以执行一些检查并引发异常。
Fincally两种方法有一些区别。