日期:2014-05-16  浏览次数:20298 次

JavaScript中的对象和数组
  • 可以使用for/in来列举JavaScript对象的所有用户定义的属性,但不能列举某些预定义的属性和方法
  • 可以使用in运算符来测试一个属性的存在性: if("x" in o) o.x = 1;
    也可以 if (o.x!==undefined) o.x = 1; 但是一个属性也可能是存在但未定义的,例如 o.x = undefined
  • 使用.和使用[]来读取属性是区别的:使用.时,属性名必须是固定的标识符,而不能是运行时计算;使用[]时,属性名是一个字符串,可以在运行时计算得到。

1. constructor属性

?

每个JavaScript对象都有一个constructor属性,它引用了初始化这个对象的构造函数,例如:

var d = new Date();
d.constructor == Date;

一个自定义的instanceof实现:

if((typeof o == "object") && (o.constructor == Date)){
        ...
}

??