深入理解JavaScript中的对象:属性、方法与创建方式

林舟
林舟
发布时间:2026-10-14 | 3人浏览过
原创

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基础教程的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表