js如何要讓一個對象繼承另一個對象的原型屬性和方法
1、使用 Object.create()
const parent = {greet: function() {console.log("Hello from parent!");}
};const child = Object.create(parent);
child.greet(); // 輸出: Hello from parent!
2、使用 proto 屬性
const parent = {greet: function() {console.log("Hello from parent!");}
};const child = {};
child.__proto__ = parent;
child.greet(); // 輸出: Hello from parent!
3、使用構造函數和原型鏈
function Parent() {}Parent.prototype.greet = function() {console.log("Hello from parent!");
};function Child() {}Child.prototype = Object.create(Parent.prototype);
// 手動掛上構造器,指向自己的構造函數
Child.prototype.constructor = Child;const child = new Child();
child.greet(); // 輸出: Hello from parent!
.4、使用ES6的類
class Parent {greet() {console.log("Hello from parent!");}
}class Child extends Parent {}const child = new Child();
child.greet(); // 輸出: Hello from parent!
5、使用 Object.setPrototypeOf()
Object.setPrototypeOf() 方法也是用來設置一個對象的原型,它是ES6規范的一部分,比直接操作 proto 更安全和推薦。
const parent = {greet: function() {console.log("Hello from parent!");}
};const child = {};
Object.setPrototypeOf(child, parent);
child.greet(); // 輸出: Hello from parent!