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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。