深入理解JavaScript中的对象:属性、方法与创建方式
JavaScript作为一门面向对象的语言,其核心在于对对象的操作。理解对象的属性与方法、掌握通过构造函数创建实例的技巧,以及利用特定关键字优化代码结构,是提升JavaScript开发效率的关键。本文将系统梳理这些基础概念与实际操作。
JavaScript面向对象特性与对象构成
一种语言被称为面向对象(OOP),通常因为它提供了四种基本功能:
- 封装:将数据(属性)和操作数据的方法存储在一起,隐藏内部实现细节。
- 聚合:将一个对象存储在另一个对象的内部,体现组合关系。
- 继承:类可以依赖另一个类,从而获得其部分属性和方法,实现代码复用。
- 多态性:编写函数或方法,使其能在不同情境下以多种方式工作。
在JavaScript中,对象由属性(Properties)构成。如果属性的值是一个函数,它被称为对象的方法;否则,它被称为对象的属性。属性可以是任何基本数据类型(如字符串、数字),也可以是抽象数据类型(如另一个对象)。虽然属性通常用于对象内部方法的状态变量,但也可以作为全局可见的变量存在。
对象属性的定义与获取
为对象添加属性并使用赋值运算符是最直接的方式。语法格式如下:
objectName.objectProperty = propertyValue;
在实际开发中,我们经常需要访问现有对象的属性。例如,通过 document.title 获取当前文档标题:
var str = document.title;
对象方法的定义与应用
方法是赋予对象行为的函数。与独立的全局函数不同,方法被附加到对象上,通常通过 this 关键字引用自身。方法可用于从简单的屏幕内容显示到复杂的数学运算等所有场景。
例如,使用 document.write() 方法向文档写入内容:
document.write("This is test");
创建用户定义的对象
除了内置对象(如 Object, Array, Date),开发者经常需要创建自定义对象。这主要通过 new 运算符配合构造函数来实现。
第1步:使用 new 操作符创建实例
new 运算符后跟随构造函数的名称,用于创建对象的新实例并初始化其属性。以下是使用内置构造函数创建对象的示例:
// 创建一个空对象
var employee = new Object();
// 创建一个数组对象
var books = new Array("C++", "Perl", "Java");
// 创建一个日期对象
var day = new Date("August 15, 1947");
第2步:使用 Object() 构造函数
Object() 是 JavaScript 提供的特殊构造函数,用于构建新对象。构造函数返回的值会被分配给一个变量,该变量即指向新建的对象。注意,分配给该对象的属性不直接使用 var 关键字定义。
以下示例演示了如何创建一个名为 book 的对象,并为其赋予 subject 和 author 属性:
<html>
<head>
<title>User-defined objects</title>
<script type="text/javascript">
var book = new Object(); // 创建对象
book.subject = "Perl"; // 为对象分配属性
book.author = "Mohtashim";
</script>
</head>
<body>
<script type="text/javascript">
document.write("Book name is : " + book.subject + "<br>");
document.write("Book author is : " + book.author + "<br>");
</script>
</body>
</html>
第3步:使用自定义构造函数生成对象
为了更高效地创建具有相同结构的多个对象,我们可以定义自定义构造函数,并在其中使用 this 关键字来指代即将创建的实例。
定义一个 book 构造函数:
function book(title, author){
this.title = title;
this.author = author;
}
然后使用 new 调用它来创建实例:
var myBook = new book("Perl", "Mohtashim");
document.write("Book title is : " + myBook.title + "<br>");
document.write("Book author is : " + myBook.author + "<br>");
为对象添加方法
仅定义属性并不完整,还需要通过分配方法来完善对象的定义。方法可以通过将函数赋值给对象属性的方式来添加。
例如,定义一个设置价格的函数,并将其关联到 book 构造函数中:
// 定义方法函数
function addPrice(amount){
this.price = amount;
}
function book(title, author){
this.title = title;
this.author = author;
this.addPrice = addPrice; // 将方法分配为对象的一个属性
}
使用时,先创建实例,再调用方法:
var myBook = new book("Perl", "Mohtashim");
myBook.addPrice(100);
document.write("Book price is : " + myBook.price + "<br>");
使用 With 关键字简化代码
with 关键字提供了一种速记方式来引用对象的属性或方法。当指定一个对象作为参数时,with 块内的代码会将该对象视为默认作用域,允许在不重复写对象名的情况下直接访问其属性和方法。
语法如下:
with (object){
properties used without the object name and dot
}
以下示例展示了如何在 addPrice 方法中使用 with 关键字简化 this 的引用:
function addPrice(amount){
with(this){
price = amount;
}
}
function book(title, author){
this.title = title;
this.author = author;
this.price = 0;
this.addPrice = addPrice;
}
尽管 with 能减少代码量,但在现代开发中需小心使用,因为它可能影响执行速度并使调试变得复杂。不过在理解传统 JavaScript 对象模式时,它是一个重要的知识点。
以上就是JavaScript对象属性、方法及创建方式的详细内容,更多关于JavaScript基础教程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









