《JavaScript语言精粹》学习笔记——3.对象

前言

JavaScript的简单数据模型包括数字、字符串、布尔值(true和false)、null值和undefined,其他所有值都是对象。

JavaScript中的对象是无类型的。

1、对象字面量

对象字面量就是包围在一对花括号中的零或多个“名/值”对。

var empty_object={};
var stooge={
      "first-name":"Jerome",
      "last-name":"Howard"
}

对象是属性的容器。属性名可以是包括空字符串在内的任何字符串。属性的值可以是除undefined的任意值。

2、检索

检索对象中的值,可以使用[ ]或 .  的方式。如果属性名是合法的JavaScript标识符且不是保留字,可以使用 . ,如果不是必须使用[ ],推荐使用  . 的方式。如果检索不存在的属性,会返回undefined。

stooge["first-name"]   // "Jerome"
stooge.status          // undefined
|| 运算符可以用来填充默认值,&& 运算符可以避免从undefined的成员属性中取值。
var middle = stooge["middle-name"] || "(none)"
flight.equipment && flight.equipment.model

3、更新

可通过赋值语句更新对象里的值

如果对象原来有这个属性,更新此属性;如果无这个属性,则对象扩充该属性。

4、引用

对象通过引用来传递。它们永远不会被复制。

如果指向的是同一个对象,更改会对所有引用这个对象的起作用。

5、原型

每个对象都连接到一个原型对象,并且可以从它中继承属性,所有通过对象字面量创建的对象都连接到object.prototype,这是JavaScript的标配对象。

当创建新对象时可以选择某个对象作为它的原型。

更新对象不会更改对象的原型。检索时才会用到原型,可以检索对象原型所有的属性。

委托是检索时一直向上级原型中查找,直到找到某属性为止。

6、反射

函数也是对象的属性,可以用 typeof 检测,识别对象中的函数。

使用 hasOwnProperty 方法,检测对象独有的属性,即原型链中无此属性。

7、枚举

for in 语句可以遍历一个对象中所有的属性名,即包括原型链中的属性。

使用 hasOwnProperty 方法排除筛选属于原型链中的属性,用 typeof 剔除函数。

8、删除

delete 运算符用来删除对象中的属性,但不会触及原型链中的属性。

9、减少全局变量污染

尽量避免使用全局变量。为应用只创建一个唯一的全局变量。后面介绍使用闭包减少全局变量污染。

var myapp = {};
myapp.stooge = {
      "first-name" : "Joe",
      "last-name" : "Howerd"
};
myapp.flight = {
       airline : "Oceanic",
       number : 815,
       departure : {
             IATA: "SYD",
             city: "Sydney"
       }
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值