原型繼承的這兩個實現之間有什麼區別,並且考慮到我們正在處理2個不同的「原型」(原型屬性僅針對函數和內部原型),以及這些實現在原型中有何不同鏈查找?另外,第一個實現(使用prototype屬性)是否依賴於我們使用new
運算符?這兩個原型繼承的實現有什麼區別?
分配給一個功能的prototype
財產,並使用new
操作者:
function foo() {}
foo.prototype.output = function(){
console.log('inherits from Function.prototype property');
};
bar = new foo();
bar.output();
存儲在對象文本的函數,並使用Object.create()
方法:
var foo = {
output: function(){
console.log('inherits from the internal prototype');
}
};
var bar = Object.create(foo);
bar.output();
一個區別是,'Object.create'較新,且在IE8不支持以下 – keune
我看不出原型** **繼承您的例子。 – hindmost
@最後可以詳細說明一下嗎? – shmuli