JavaScript对象字面量详解:定义、访问与方法调用

作者:拾光

时间:2026-10-30

浏览:280

本文深入解析JavaScript对象字面量的核心用法。涵盖通过点运算符与方括号访问属性的两种方式,对比传统构造函数与字面量定义对象方法的差异,重点介绍匿名函数的定义与调用。此外,演示如何利用字面量对象作为参数传递,以简化多参数函数的调用逻辑,提升代码可读性。

文章目录

对象字面量概述

本节介绍对象字面量的输出方式及其定义优势。

属性访问方式

对象字面量的属性访问主要有两种模式:一是使用传统的点运算符(.),二是使用数组下标方式。在使用数组下标方式时,属性名必须用引号包裹,例如:


var box = {
  name:'abc';
  age:28
};
alert(box['name']);

对象方法的定义与调用

接下来探讨如何在对象中定义方法。

若采用传统方式定义对象,需先独立定义函数,再将该函数引用赋值给对象的属性。调用时,若不加括号,将返回函数代码本身;若在属性名后加上括号,则执行函数并返回结果。


function objrun(){
  return '123';
}
var box = new Object();
box.name='abc';
box.age = 28;
box.run = objrun;
alert(box.run());       //结果为123
// alert(box.run);       //结果为function objrun(){ return '123'; }
//如果box.run = objrun();
//alert(box.run);       //结果为123,如果带上圆括号,就报错啦

若采用字面量方式定义,只需在属性名后直接赋值一个函数。该函数通常没有名称,即匿名函数。调用此方法时,同样通过属性名加括号的方式执行,逻辑与传统方式一致。

具体示例如下:


var box = {
  name:'abc',
  age:28,
  run:function(){
    return '123';
  }
}
alert(box.run());

利用字面量优化参数传递

对象字面量的另一种优势在于处理函数参数较多的情况。传统方式要求参数一一对应,容易出错。通过传入一个用字面量定义的对象,属性名与值的对应关系一目了然。由于函数仅是代码块,必须通过调用才能执行,这种方式能显著提升代码的可读性和维护性。

示例代码如下:


function AA(obj){
  alert(obj.name);
  alert(obj.age);
}
var obj = {
  name: 'abc',
  age: 28
}
AA(obj);

完整代码示例

以下是JavaScript对象字面量的完整演示。


/**
 * @author zhanghua
 */
var literal = {
  add: function(){
    alert("add");
  },
  del: function(){
    alert("delete");
  },
  update: function(){
    alert("update");
  },
  name: "zhangsan",
  callLiteral: function(){
    // 对于当前字面量对象的调用,要加this关键字
    this.add();
  }
};

HTML文件结构如下:


<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Literal--字面量</title>
    <script type="text/javascript" src="jslib/literal.js"></script>
  </head>
  <body>
    <input type="button" value="add" onclick="javascript:literal.add()"/>
    <input type="button" value="delete" onclick="javascript:literal.del()"/>
    <input type="button" value="update" onclick="literal.update()"/>
    <input type="button" value="name" onclick="javascript:alert(literal.name)"/>
    <input type="button" value="name" onclick='javascript:alert(literal["name"])'"/>
    <input type="button" value="caller" onclick='javascript:literal.callLiteral()'"/>
  </body>
</html>

本文内容到此结束。如需进一步了解JavaScript语法,建议查阅《JavaScript 参考教程》与《JavaScript代码风格指南》,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章