我在 StackOverflow 中看到了这个: https://stackoverflow.com/a/7786090/289246
答案告诉我们要做的事情:
DynamicBody.prototype = Object.create( PhysicsBody.prototype );
使用Object.create的原因是什么?
为什么我们不能直接使用:
DynamicBody.prototype = PhysicsBody.prototype;
?
最佳答案
您可以(技术上),但是您对 DynamicBody.prototype
所做的任何更改也将在 PhysicsBody.prototype
上进行,即它将影响所有 PhysicsBody
实例,这通常不是您想要的。
示例:
function Foo() {};
Foo.prototype.say = function() {
alert('Foo');
};
var foo = new Foo();
function Bar() {};
Bar.prototype = Foo.prototype;
Bar.prototype.say = function() {
alert('Bar');
};
foo.say(); // alerts 'Bar'
Object.create
添加一级间接。
关于javascript继承为什么要用Object.create?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15304318/