JavaScript对象是一种包含属性和方法的数据结构。在JavaScript中,对象属性和方法有4种不同的类型。
1. 数据属性
数据属性是最简单的属性类型。它是对象的一个简单属性,通常被用来存储数据。数据属性有以下特征:
- value:属性值
- writable:是否可写(true | false)
- enumerable:是否可枚举(true | false)
- configurable:是否可配置(true | false)
下面是一个示例:
var obj = {
name: 'ZhangSan',
age: 20
}
console.log(obj.name); // 输出 'ZhangSan'
2. 访问器属性
访问器属性不包含数据值,而是包含getter和setter方法。getter方法负责读取属性值,setter方法负责写入属性值。访问器属性有以下特征:
- get:获取方法
- set:设置方法
- configurable:是否可配置(true | false)
- enumerable:是否可枚举(true | false)
下面是一个示例:
var obj = {
firstName: 'Zhang',
lastName: 'San',
get fullName() {
return this.firstName + ' ' + this.lastName;
},
set fullName(value) {
var names = value.split(' ');
this.firstName = names[0];
this.lastName = names[1];
}
};
console.log(obj.fullName); // 输出 'Zhang San'
obj.fullName = 'Li Si';
console.log(obj.firstName); // 输出 'Li'
console.log(obj.lastName); // 输出 'Si'
3. 继承属性
继承属性是从原型链继承的属性。它们不是在对象自身定义的,而是在其原型对象上定义的。继承属性可被所有对象实例共享。继承属性无法通过delete操作符删除,只能通过覆盖其值来隐藏。
下面是一个示例:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayName = function() {
console.log(this.name);
}
var person1 = new Person('ZhangSan', 20);
var person2 = new Person('LiSi', 22);
person1.sayName(); // 输出 'ZhangSan'
person2.sayName(); // 输出 'LiSi'
在上面的例子中,sayName方法是在Person的原型对象上定义的,而不是在每个对象实例上定义的。这意味着所有Person对象实例都共享这个方法。
4. 内置属性
内置属性是JavaScript语言自带的属性。这些属性通常是指ECMA规范定义的方法。例如Object.prototype.toString()方法,它用于返回对象本身的字符串表示。
下面是一个示例:
var arr = [1, 2, 3];
console.log(arr.toString()); // 输出 '1,2,3'
在上面的例子中,toString()方法是内置属性,它可以将数组转换为字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 对象的属性和方法4种不同的类型 - Python技术站