JavaScript面向对象基础:创建与属性详解

需积分: 0 0 下载量 47 浏览量 更新于2024-09-01 收藏 80KB PDF 举报
"JavaScript面向对象程序设计的基本概念和方法,包括对象的定义、实例化、属性类型以及数据属性的描述符。" JavaScript是一种基于原型的面向对象编程语言,它的面向对象程序设计允许开发者通过对象来组织和处理数据及功能。在JavaScript中,对象是一个无序属性的集合,这些属性可以包含基本值(如字符串、数字)、其他对象或函数。通过实例化Object构造函数,我们可以创建一个新的对象,并为其添加属性和方法。 例如: ```javascript var person = new Object(); person.name = "Xulei"; person.age = "23"; person.job = "前端工程师"; person.sayName = function() { alert(this.name); }; ``` 此外,对象也可以使用字面量语法进行初始化: ```javascript var person = { name: "xulei", age: 23, job: "前端工程", sayName: function() { alert(this.name); } }; ``` 在JavaScript中,对象的属性分为两种类型:数据属性和访问器属性。数据属性包含数据值,有四个描述其行为的特性: 1. `Configurable`:表示能否删除属性、修改属性特性或将其转换为访问器属性,默认为`true`。 2. `Enumerable`:决定属性是否能通过`for-in`循环遍历,默认为`true`。 3. `Writable`:指示能否修改属性的值,默认为`true`。 4. `Value`:存储属性的初始值,默认为`undefined`。 要修改属性的默认特性,可以使用`Object.defineProperty()`方法: ```javascript var person = {}; Object.defineProperty(person, "name", { writable: false, // 属性不能被修改 value: "徐磊-xulei" }); alert(person.name); // 徐磊-xulei person.name = "徐磊"; // 在非严格模式下,赋值操作被忽略 alert(person.name); // 徐磊-xulei ``` 在严格模式下,尝试修改不可写属性会抛出错误,而在非严格模式下,这样的赋值操作将不会改变属性的值。 面向对象编程中的另一个关键概念是类。虽然JavaScript原生不支持类(在ES6之前),但可以通过构造函数和原型链模拟类的行为。构造函数用于初始化新创建的对象,而原型链则允许对象共享属性和方法。在ES6中,引入了`class`关键字来简化面向对象编程的语法,但它仍然是基于函数和原型的。 JavaScript的面向对象特性提供了创建复杂、可复用的代码结构的能力,使得代码更加模块化和易于维护。理解对象、属性类型和描述符是掌握JavaScript面向对象程序设计的基础。