在 JavaScript 中,这两个例子的区别是什么:
先决条件:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
继承示例使用 Object.create:
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
}