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()或者構造函數。 |
原型通過允許對象繼承其屬性和方法來促進繼承。 |
相關用法
- Javascript Object.assign( )用法及代碼示例
- Javascript Object.create( )用法及代碼示例
- Javascript Object.entries()用法及代碼示例
- Javascript Object.freeze( )用法及代碼示例
- Javascript Object.is( )用法及代碼示例
- Javascript Object.isFrozen( )用法及代碼示例
- Javascript Object.isSealed( )用法及代碼示例
- Javascript Object.keys( )用法及代碼示例
- Javascript Object.seal( )用法及代碼示例
- Javascript Object.values( )用法及代碼示例
- Javascript Object.fromEntries()用法及代碼示例
- Javascript Object.getOwnPropertyDescriptor()用法及代碼示例
- Javascript Object.defineProperties()用法及代碼示例
- Javascript Object.isExtensible()用法及代碼示例
- Javascript Object.getOwnPropertySymbols()用法及代碼示例
- Javascript Object.getOwnPropertyNames()用法及代碼示例
- Javascript Object.setPrototypeOf()用法及代碼示例
- Javascript Object.getOwnPropertyDescriptors()用法及代碼示例
- Javascript Object.defineProperty()用法及代碼示例
- Javascript Object轉Array用法及代碼示例
- Javascript Object.freeze()和const的區別用法及代碼示例
- Javascript Object.keys()和Object.entries()的區別用法及代碼示例
- Javascript Atomics.add( )用法及代碼示例
- Javascript Atomics.and()用法及代碼示例
- Javascript Atomics.compareExchange( )用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Difference Between Objects and Prototypes in JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。