JavaScript语言精粹 学习笔记

第3章 对象

1.如果尝试检索一个并不存在的成员属性的值,将返回 undifined

stooge['middle-name']  // undifined
flight.status  // undifined

 || 运算符可以用来填充默认值:

var middle = stooge['middle-name'] || "(none)"
var status = flight.status || "unkown"

尝试从undifined的成员属性中取值将会导致TypeError异常。这时可以通过  && 运算符来避免错误。

flight.equipment   // undifined
flight.equipment.model   // throw "TypeError"
flight.equipment && flight.equipment.model  // undifined

2.原型链在更新时是不起作用的,只有在检索值的时候才被用到

我们尝试去获取对象的某个属性,这个过程叫委托。

委托的过程:

查找对象的属性值、查找原型对象的属性、在原型对象的原型中找、 ... Object.prototype

猜你喜欢

转载自www.cnblogs.com/benbendu/p/9099958.html