在 JavaScript 中,这两个示例有什么区别:
先决条件:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
使用 Object.create 的继承示例 A:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
使用 new 关键字的继承示例 B
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
这两个例子似乎做同样的事情。你什么时候会选择一个而不是另一个?
另一个问题:考虑下面链接(第 15 行)中的代码,其中对函数自己的构造函数的引用存储在原型中。为什么这很有用?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
摘录(如果您不想打开链接):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}