JS原型繼承實例

function object(o) {
    function F() {
    }

    F.prototype = o;
    return new F();
}

// 要繼承的父對象
var parent = {
    name: "Papa"
};

// 新對象
var child = object(parent);

// 測試
console.log(child.name); // "Papa"


// 父構造函數
function Person() {
    // an "own" property
    this.name = "Adam";
}
// 給原型添加新屬性
Person.prototype.getName = function () {
    return this.name;
};
// 創建新person
var papa = new Person();
// 繼承
var kid = object(papa);
console.log(kid.getName()); // "Adam"


// 父構造函數
function Person() {
    // an "own" property
    this.name = "Adam";
}
// 給原型添加新屬性
Person.prototype.getName = function () {
    return this.name;
};
// 繼承
var kid = object(Person.prototype);
console.log(typeof kid.getName); // "function",因爲是在原型裏定義的
console.log(typeof kid.name); // "undefined", 因爲只繼承了原型


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章