下面是 Javascript 面向对象 对象(Object)的完整攻略:
理解概念
JavaScript 的面向对象和其他语言很相似,都是基于类和实例的概念。但是 JavaScript 中没有类,而是通过对象来实现面向对象编程。
对象可以看作是一个属性的集合,每个属性都是由键值对(key-value pair)组成,键名是字符串,键值可以是任意的 JavaScript 值,包括函数。对象可以通过字面量、构造函数等方式创建。
示例 1:
// 对象字面量
const person = {
name: '张三',
age: 20,
gender: '男',
sayHello: function () {
console.log('你好,我叫' + this.name + ',今年' + this.age + '岁。');
}
};
// 构造函数
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this.sayHello = function () {
console.log('你好,我叫' + this.name + ',今年' + this.age + '岁。');
}
}
const person2 = new Person('李四', 22, '男');
访问对象属性
访问对象属性有两种方式:点表示法和方括号表示法。使用点表示法时,需要知道属性的名称。使用方括号表示法时,可以动态指定属性的名称。
示例 2:
console.log(person.name); // '张三'
console.log(person['age']); // 20
const propName = 'gender';
console.log(person[propName]); // '男'
对象方法
对象可以包含方法,方法就是对象中的一个属性,它的值是一个函数。在方法内部,this
表示当前对象。
示例 3:
person.sayHello(); // 输出:'你好,我叫张三,今年20岁。'
Person.prototype.sayHi = function () {
console.log('Hi,我是' + this.name + '。');
}
person2.sayHi(); // 输出:'Hi,我是李四。'
对象的扩展和属性描述符
JavaScript 允许在现有对象上添加新属性或方法,也可以修改或删除已有属性。
属性描述符是一个对象,为属性提供附加的元数据,包括值、可枚举性、可配置性、可读性和可写性等。可以使用 Object.defineProperty
函数来创建或修改属性描述符。
示例 4:
Object.defineProperty(person, 'phone', {
value: '123456789',
writable: false, // 不可修改
enumerable: false, // 不可枚举
configurable: false // 不可删除
});
person.phone = '987654321'; // 无效
console.log(person.phone); // '123456789'
delete person.phone; // 无效
console.log(person.phone); // '123456789'
总结
对象是 JavaScript 中最重要的数据类型之一,它是面向对象编程的基础。理解对象的概念、访问属性和方法、属性描述符等内容,对于学习 JavaScript 面向对象编程非常重要。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 面向对象 对象(Object) - Python技术站