JavaScript 中的 Object.create()
JavaScript 中的对象和对象构造函数?
在面向对象编程的现实世界中,我们已经知道类和对象的重要性,但与其他编程语言不同,JavaScript 没有其他语言中看到的传统类。但是 JavaScript 有对象和构造函数,它们大多以相同的方式执行相同类型的操作。
- 构造函数是与“new”关键字一起使用的通用 JavaScript 函数。 JavaScript 中的构造函数有两种类型,即内置构造函数(数组和对象)和自定义构造函数(为特定对象定义属性和方法)。
- 当我们需要一种方法来创建可以多次使用的对象“类型”而不必每次都重新定义对象时,构造函数会很有用,这可以使用对象构造函数来实现。将构造函数的名称大写以将它们与常规函数区分开来是一种惯例。
例如,考虑以下代码:
function Automobile(color) {
this.color=color;
}
var vehicle1 = new Automobile ("red");
函数“Automobile()”是一个对象构造函数,它的属性和方法,即“color”是通过在它的前面加上关键字“this”来声明的。使用对象构造函数定义的对象然后使用关键字“new”成为即时对象。
当 new Automobile() 被调用时,JavaScript 做了两件事:
- 它创建一个新的对象(实例)汽车()并将其分配给一个变量。
- 它将对象的构造函数属性(即“颜色”)设置为汽车。
Object.create() 方法
Object.create() 方法用于创建具有指定原型对象和属性的新对象。 Object.create() 方法返回一个具有指定原型对象和属性的新对象。
应用:
- Object.create() 用于实现继承。
句法:
Object.create(prototype[, propertiesObject])
Parameters Used:
- prototype : It is the prototype object from which a new object has to be created.
- propertiesObject : It is optional parameter. It specifies the enumerable properties to be added to the newly created object.
Return Value:
Object.create() returns a new object with the specified prototype object and properties.
下面提供了上述函数的示例。
例子:
Input : function fruits() {
this.name = 'fruit 1';
}
function apple() {
fruits.call(this);
}
apple.prototype = Object.create(fruits.prototype);
const app = new apple();
console.log(app.name);
Output : "fruit 1"
说明:在这个例子中,有两个函数“fruits”和“apple”。创建了一个名为“app”的新apple实例,它已经指定了“fruits”的原型和属性,即this.name ='水果1'。
Input : function fruits() {
this.name = 'fruit 1';
this.season = 'summer';
}
function apple() {
fruits.call(this);
}
apple.prototype = Object.create(fruits.prototype);
const app = new apple();
console.log(app.name);
console.log(app.season);
Output : "fruit 1"
"summer"
说明:在这个例子中,有两个函数“fruits”和“apple”。创建了一个名为“app”的新apple实例,它已经指定了“fruits”的原型和属性,即this.name = '水果 1' 而这个 .season = '夏天'。
下面提供了上述函数的代码。
代码 1:
Javascript