父构造函数+ Object.create(Parent.prototype)vs new Parent()?

时间:2015-05-17 06:02:54

标签: javascript inheritance constructor prototype

D1D2(扩展名为d1d2)是否等效?如果有的话,它们之间有什么显着的差异?

另外,我应该如何通过D1使D2Base.prototype的原型无法修改?这样就不会显示baz

var d1, d2
function Base() {this.foo = 'foo'}
Base.prototype.bar = 'bar'

function D1() { }
D1.prototype = new Base()

function D2() {Base.call(this)}
D2.prototype = Object.create(Base.prototype)

Base.prototype.baz = 'baz'

d1 = new D1()
d2 = new D2()

console.log(d1.foo, d1.bar, d1.baz)
//-> foo bar baz
console.log(d2.foo, d2.bar, d2.baz)
//-> foo bar baz

0 个答案:

没有答案