📅  最后修改于: 2023-12-03 15:01:47.840000             🧑  作者: Mango
在Javascript中,属性是用于描述对象状态和特征的值,包括基本数据类型和对象类型。属性可以分为两类:实例属性和原型属性。
实例属性属于特定的对象实例,每个实例都有自己的属性值,并且在创建实例的过程中产生。可以通过以下两种方式来定义实例属性:
function Person(name, age) {
this.name = name; //实例属性
this.age = age; //实例属性
}
var person = new Person("Tom", 20);
person.gender = "male"; //实例对象外部定义
原型属性属于对象的原型,用于存储与对象有关的共享信息。如果某属性在实例中不存在,则会从原型中查找相应的属性。可以通过以下两种方式来定义原型属性:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.gender = "male"; //原型属性
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype = {
gender: "male" //原型对象外部定义
};
需要注意的是,如果通过原型对象外部定义方式来定义原型属性,则会覆盖构造函数内部定义的原型属性。
可以使用点操作符或方括号来访问对象的属性。如果属性名是一个有效的标识符,则可以使用点操作符;如果属性名包含空格、数字等特殊字符,则必须使用方括号。
var person = {
firstName: "Tom",
lastName: "Smith"
};
console.log(person.firstName); //Tom
console.log(person["lastName"]); //Smith
每个属性都有自己的特性,包括值(value)、可写性(writable)、可枚举性(enumerable)和可配置性(configurable)。
可以使用Object.defineProperty()方法来修改属性的特性。例如,将属性设置为不可写:
var person = {
firstName: "Tom",
lastName: "Smith"
};
Object.defineProperty(person, "firstName", {
writable: false
});
person.firstName = "Jack"; //无效操作
console.log(person.firstName); //Tom
Javascript中的属性用于描述对象状态和特征,包括实例属性和原型属性。实例属性属于特定的对象实例,每个实例都有自己的属性值;而原型属性属于对象的原型,用于存储与对象有关的共享信息。属性可以通过点操作符或方括号来访问,每个属性都有自己的特性,包括值、可写性、可枚举性和可配置性。可以使用Object.defineProperty()方法来修改属性的特性。