对象字面量
我们可以将JavaScript中的对象简单地理解为名值对组成的散列表(hash table,也叫哈希表)。在其他编程语言中被称作“关联数组”。其中的值可以是原始值也可以是对象。不管是什么类型,它们都是“属性”(property),属性值同样可以是函数,这时属性就被称为“方法”(method)。
JavaScript中自定义的对象(用户定义的本地对象)任何时候都是可变的。内置本地对象的属性也是可变的。你可以先创建一个空对象,然后在需要时给它添加功能。“对象字面量写法(object literal notation)”是按需创建对象的一种理想方式。
看一下这个例子:
//
定义空对象 var dog = {}; // 添加一个属性 dog.name = "Benji"; // 添加一个方法 dog.getName = function () { return dog.name; };
在这个例子中,我们首先定义了一个空对象,然后添加了一个属性和一个方法,在程序的生命周期内的任何时刻都可以:
更改属性和方法的值,比如: dog.getName = function () { // 重新定义方法,返回一个硬编码的值 return "Fido"; }; 删除属性/方法 delete dog.name; 添加更多的属性和方法 dog.say = function () { return "Woof!"; }; dog.fleas = true;
每次都创建空对象并不是必须的,对象字面量模式可以直接在创建对象时添加功能,就像下面这个例子:
var dog = { name: "Benji", getName: function () { return this.name; } };
对象字面量语法
如果你从来没有接触过对象字面量的写法,可能会感觉怪怪的。但越到后来你就越喜欢它。本质上讲,对象字面量语法包括:
将对象主体包含在一对花括号内({ 和 })。
如果将对象赋值给一个变量,不要忘了在右括号}之后补上分号。
通过构造函数创建对象
JavaScript中没有类的概念,这给JavaScript带来了极大的灵活性,因为你不必提前知晓关于对象的任何信息,也不需要类的“蓝图”(译注:指类的结构)。但JavaScript同样具有构造函数,它的语法和Java或其他语言中基于类的对象创建非常类似。
你可以使用自定义的构造函数来创建对象实例,也可以使用内置构造函数来创建,比如Object()、Date()、String()等等。
下面这个例子展示了用两种等价的方法分别创建两个独立的实例对象:
// 一种方法,使用字面量 var car = {goes: "far"}; // 另一种方法,使用内置构造函数 // 注意:这是一种反模式 var car = new Object(); car.goes = "far";
从这个例子中可以看到,字面量写法的一个明显优势是,它的代码更少。“创建对象的最佳模式是使用字面量”还有一个原因,它可以强调对象就是一个简单的可变的散列表,而不必一定派生自某个类。
另外一个使用字面量而不是Object()构造函数创建实例对象的原因是,对象字面量不需要“作用域解析”(scope resolution)。因为存在你已经创建了一个同名的构造函数Object()的可能,当你调用Object()的时候,解析器需要顺着作用域链从当前作用域开始查找,直到找到全局Object()构造函数为止。
相关推荐
以下也是JavaScript字面量的例子,如5、true、false和null,它们分别表示一个整数、两个布尔值和一个空对象。 JavaScript还支持对象和数组字面量,允许使用一种简洁而可读的记法来创建数组和对象。考虑以下语句,...
Javascript对象字面量的理解_.docx
JavaScript中可以用字面量来直接创建一个新对象: 代码如下: var obj = {a:27, “b”:99}; 如上所述,在用字面量来创建对象的时候,对象中的property定义可以用单引号或双引号来包括,也可以忽略引号。不过,当...
JavaScript 字面量 在编程语言中,一个字面量是一个常量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号 be ...
执行语句可有可无,但是花括号不能少由以上四部分,可以知道,一个函数字面量的最简形式为:但是,在JavaScript中,上述语句被解析为函数声明,会因为没有函数名
主要介绍对Javascript对象字面量的理解,通俗易懂,需要的朋友可以参考下。
本文实例讲述了JavaScript对象字面量和构造函数。分享给大家供大家参考,具体如下: 对象中只有两种属性:(一种比较细的分法) 属性(数据属性)比如:名字,年龄,性别,出版社,地址等信息; 方法(封装代码的属性:...
JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号: "John ...
布尔型(只有两个值:ture fasle) 字符串字面量 1.转义系列: 在javascript中一些符号是辨别不出来的,只有转义之后正确显示出来。如: \’ 单引号 \” 双引号 \n 换行符 \r 回车符 \\ 反斜杠 转义实例: 代码如下:...
//比如像字面量 "abc\\\"", 则会匹配为 "abc\\\", 而正确的结果应该是 "abc\\\"". var re = /('('|.*?([^\\]'|\\\\'))|"("|.*?([^\\]"|\\\\")))/g; 第二代: //这个匹配其实和第一代思路基本相同, 也是寻找结束引号,...
(作者:邱锡纶 撰写时间:2020年4月26日星期日) JavaScript正则表达式 一、认识正则表达式 1、正则表达式是描述字符模式的对象,正则... 字面量的正则由两个正斜杆组成//,第一个正斜杆后面写规则:/pattern[规则
第3章 字面量和构造函数 对象字面量 自定义构造函数 强制使用new的模式 数组字面量 JSON 正则表达式字面量 基本值类型包装器 错误对象 小结 第4章 函数 背景 回调模式 返回函数 ...