當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Javascript Objects和Prototypes的區別用法及代碼示例


JavaScript 中的對象

JavaScript 中的對象是類或構造函數的實例,它們可以保存屬性和方法。這些屬性和方法可以是對象所獨有的,也可以是從原型繼承的。可以使用以下方法創建對象構造函數,對象字麵量,或者對象構造函數.

用法:

const person = {
name: 'Kumar',
age: 20,
greet: function() {
// code
}
};

例子:在此示例中,汽車對象可能具有 “make” 和 “model” 等屬性以及用於啟動發動機或換檔的方法。

Javascript


car1 = { make: 'Toyota', model: 'Camry' };
// Adding a method to object
car1.start = function () {
    console.log('Engine started');
};
// Using the object and its method
car1.start();
輸出
Engine started

JavaScript 中的原型

JavaScript 中的原型是為其他對象提供共享屬性和方法的模板對象。每個對象都有一個內置屬性,稱為原型。而prototype本身就是一個對象,所以它也有自己的原型。它們不是作為原型顯式創建的,而是作為特定類型對象的藍圖存在。原型通過允許對象繼承其屬性和方法來促進繼承。

用法:

function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
// code
}

示例:在這個例子中,定義了一個 Cars 構造函數來創建具有 make 和 model 屬性的汽車對象,並在 Cars 原型中添加了一個共享啟動方法來啟動引擎。

Javascript


function Cars(make, model) {
    this.make = make;
    this.model = model;
}
// Adding a shared method to Car prototype
Cars.prototype.start = function () {
    console.log('Engine started');
};
// Creating car objects
const myCars = new Cars('Toyota', 'Camry');
const anotherCars = new Cars('TATA', 'Accord');
// Using the shared method from prototype
myCars.start();
anotherCars.start();
輸出
Engine started
Engine started

JavaScript 中對象和原型的區別

特征

對象

原型

定義

對象是類或構造函數的實例,它們可以保存屬性和方法。

原型是為其他對象提供共享屬性和方法的模板對象。

創建

使用構造函數、對象字麵量或對象構造函數創建。

不是作為原型明確創建的,而是作為對象的藍圖存在。

特性

對象有自己獨特的屬性,並且可以從原型繼承。

原型定義了可由對象繼承的共享屬性。

方法

對象可以有自己的方法,與原型中的方法不同。

原型可以定義在相同類型的對象之間共享的方法。

繼承

對象可以使用以下機製從其他對象繼承對象.create()或者構造函數。

原型通過允許對象繼承其屬性和方法來促進繼承。



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Difference Between Objects and Prototypes in JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。