谈谈JavaScript中创建对象(Object)

栏目: JavaScript · 发布时间: 5年前

内容简介:在这篇文章中我将会着重说明如何创建和调用JavaScript里的对象(Object)。在开始介绍如何创建对象前,我们要知道对象是什么。对象(第一种是原生的值(

在这篇文章中我将会着重说明如何创建和调用JavaScript里的对象(Object)。

对象(Object)是什么?

在开始介绍如何创建对象前,我们要知道对象是什么。对象( Object )简单地来说,就是一堆「名称- 值」的配对(key - value pairs)。至于可以放入哪些值呢?

第一种是原生的值( primitive ),像是布尔值( Boolean )、数值( Number )或是字符串( String ),而在对象当中,我们把这类的值称为属性( Property )。

第二种可以放入的值是对象( Object ),也就是在一个对象里面再嵌入一个对象,这种以对象为值的情况我们也把它称作属性( Property )。

第三种放入的值可以是函数( function ),在对象的情况下,我们会把这种函数称做方法( method )。在对象中的每一个 Property 或是 Method 都会占据电脑当中一个记忆体的位置,在需要使用到的时候,把它们调取出来。

接下来我将介绍三种创建JavaScript里的对象及如何调用的方法:

方法一:使用 [ ]

创建对象

创建对象的第一个方法是使用 [ ][ ] 在JavaScript中被称做Computed Member Access:

谈谈JavaScript中创建对象(Object)

让我们看一下底下的例子:

// 创建对象
var person = new Object();
person["firstname"] = "Jay";
person["lastname"] = "Chou";
复制代码

这是利用 [ ] 创建对象的方法,首先我们创建一个对象,叫做 person ,接着开始给它「名称-值」配对,例如, firstname 是属性的名称, Jay 则是它的值; lastname 也是属性名称, Chou 则是它的值。通过这种方法,我们就可以创建对象里面的各种「名称-值」配对。

调用对象

紧接上面的例子,我们也同样可以利用 [ ] 来调用已经建立好的对象, [ ] 里面如果放的是字符串而不是变量,注意要记得加上引号'像是这样:

// 调用对象
console.log(person["firstname"]);  // Jay
复制代码

另外,如果是通过 [ ] 来调用对象的话,还有一个特别的地方,就是 [ ] 内可以放变量,像是这样(当 [ ] 里面放的是变量时不用加引号 " ),一样可以调用到对象的值,这个是用种方法二( . )做不到的:

// 调用对象
var id = "lastname";
console.log(person[id]);  // Chou
复制代码

方法二:使用点符号 .

创建对象

第二种创建对象的方法是使用英文的句点 . ,在JavaScript中被称做Member Access,创建的方法如下:我们在刚刚创建的 person 这个对象里面,再创建一个对象属性,名称为 address 。其实,我觉得可以把.翻译成中文的「的」,所以这里的意思就是,在 person 的里面创建一个名称为 address 的对象;在 personaddresscountry ,创建一个值为 "China" ,以此类推...。

// 创建对象
person.address = new Object();
person.address.country = "China";
person.address.city = "Hangzhou";
person.address.location = "Xihu";
复制代码

调用对象

同样的方法也可以用来调用出该对象的值:

// 调用对象
console.log(person.address);  //{country: "China", city: "Hangzhou", location: "Xihu"}
console.log(person.address.country);  // China
console.log(person["address"]["location"]);  // Xihu
复制代码

从上面可以看出, .[ ] 是可以交替使用的。

方法三:使用{ }

创建对象

其实还有在创建对象上有更快的做法,我们可以直接使用 { } ,我们可以把上面的代码,改成这样:

// 创建对象
var person = {
    firstname: "Jay",
    lastname: "Chou",
    address: {
        country: "China",
        city: "Hangzhou",
        location: "Xihu"
    }
}
复制代码

通过这种方式,可以得到与方法二一模一样的结果,调用方法也一致。

搭配函数使用对象

在我们创建好对象后,我们可以搭配函数( function )来使用对象,例如,我先把刚刚创建的对象 person ,改成叫做 jaychou

var jaychou = {
    firstname: "Jay",
    lastname: "Chou",
    address: {
        country: "China",
        city: "Hangzhou",
        location: "Xihu"
    }
}
复制代码

接着创建一个名称为 SayHI 的函数,并且带入我们的对象:

function SayHI(people) {
    console.log("HI" + people.lastname);
}

SayHI(jaychou);  // HI Chou
复制代码

直接在函数参数的地方创建对象

我们也可以直接在调用函数的同时创建对象,像是这样子:

SayHI({firstname: "Jony", lastname: "J"});  // HI J
复制代码

一开始看到这样的写法可能会觉得很奇怪,但其实这种方式和我们直接在函数的参数里面输入字符串或数值是一样的意思,只是这里是创建一个对象。我们把这种直接在函数的参数中创建对象的方法称做"creating object on the fly"(即动态创建对象)。

其他说明

其实使用 new Object 不是创建对象最好的方式,这点会在之后的文章再作说明。另外,虽然使用 [ ]. 都可以拿来创建对象和调用对象,但还是建议尽量使用点符号.作为创建对象和调用对象的方法,这样比较干净简洁,在debug的时候也比较容易。

还有不论你使用的是 new Object 、" . "、或者直接用" { } "来创建对象,其实在JavaScript转译之后,本质上做的都是同样的事。它都会将这个对象建立在记忆体中,并创建该对象的属性( property )和方法( method )在记忆体中。

如果觉得文章对你有些许帮助,欢迎在 我的GitHub博客 点赞和关注,感激不尽!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界是数字的

世界是数字的

[美] Brian W. Kernighan / 李松峰、徐建刚 / 人民邮电出版社 / 2013-6 / 49.00

家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信......一起来看看 《世界是数字的》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码