Cat 是構造器,不是原型物件。簡單的原型繼承可以這樣寫,比構造器簡單有效率:
// 貓,將會是狗的原型
var Cat = {
name: "cat",
age: "3",
work: "nowork",
cry: function(){ return "I am cry"; }
};
// IE 11 及其他所有瀏覽器的寫法
var Dog = {
__proto__: Cat,
name: "dog",
age: "4"
};
// IE <= 10 的寫法略冗長些。IE 6/7/8 需要上網複制 "Object.create" 函式。
var Dog = Object.create( Cat, {
name: { value: "dog" },
age: { value: "4" }
} );
// 繼承 Dog
dog = Object.create( Dog );
// "nowork"
console.log( dog.work );
// 貓,將會是狗的原型
var Cat = {
name: "cat",
age: "3",
work: "nowork",
cry: function(){ return "I am cry"; }
};
// IE 11 及其他所有瀏覽器的寫法
var Dog = {
__proto__: Cat,
name: "dog",
age: "4"
};
// IE <= 10 的寫法略冗長些。IE 6/7/8 需要上網複制 "Object.create" 函式。
var Dog = Object.create( Cat, {
name: { value: "dog" },
age: { value: "4" }
} );
// 繼承 Dog
dog = Object.create( Dog );
// "nowork"
console.log( dog.work );