q第3章 对象(Objects)

2016-06-01  本文已影响9人  没人能救你呀吼

3.1 对象字面量 Objects Literals

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


3.2 检索 Retrieval

检索对象中包含的值:

stooge["first-name"]    //"Joe"
stooge.departure.IATA    //"SYD"
var middle = stooge["middle-name"] || "(none)" ;
var status = stooge.status || "unknown" ;
stooge.equipment                                                  //undefined
stooge.equipment.model                                       //throw "TypeError"
stooge.equipment && stooge.equipment.model                  //undefined

3.5 原型 Prototype

和原型链有关,稍后再记


3.6 反射 Reflection

反射:指可处理未知的对象并获得它们的属性和方法。
typeof操作符对确定属性的类型很有帮助,但是原型链中的属性也会产生一个值,为了处理这些不必要的属性,有两个办法:

stooge.hasOwnProperty('first-name')          //true
stooge.hasOwnProperty('middle-name')      //false

3.7 枚举 Enumeration

for in语句可用来遍历一个对象中的所有属性名,包括原型链中的属性。
最常用的过滤器是hasOwnProperty方法,以及使用typeof来排除函数。

var name;
for(name in another_stooge) {
    if(typeof another_stooge[name]!== 'function') {
        document.writeln(name+':'+another_stooge[name]);
    }
}


3.8 删除 Delete

delete运算符可以用来删除对象的属性,且不会触及原型链中的属性,但是可能会让原型链中的属性浮现出来:

another_stooge.nickname            //'Moe'
delete another_stooge.nickname;
//原型链中的nickname属性浮现
another_stooge.nickname         //'Curly'

3.9 减少全局变量污染 Global Abatement

全局变量削弱了程序的灵活性,所以应该避免。

上一篇 下一篇

猜你喜欢

热点阅读