JavaScript继承:Object.create vs new

19 浏览
0 Comments

JavaScript继承:Object.create vs new

在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
}

0