JS中的对象创建、属性访问
一条面试题公司最近在招web fronter,免不了需要进行面试,于是大家在群里讨论一些题目。其中一题如下:
var a = new Object;var b = new Object;var c = new Object;c=a;c=b;alert(c===a); //输出什么 这个题目还是很有意思的,第一反应往往会心中涌起一丝疑惑,这难道不是true么(我就是的= =!)事实上还真输出了一个false...这样也许看不出什么端倪,但是如果稍微变动一下代码:
var a = new Object;var b = new Object;var c = new Object;c=a;c=b;alert(c===b); //输出truealert(c===b); //输出true 从结果可以明显的推断出一个事实:当运行了c=b这条语句之后,原先的属性c被覆盖了。也就是说,其实c和c指向的是同一个东西。
创建JS对象
现在需要深究一下,JS对象的属性究竟是怎么回事...一般而言,我们会认为JS中的对象就是一个无序的属性集,这个属性集中的每个属性都由键值对构成,就好比一种散列表类似的数据结构。对象里属性的值可以用来存放JS中原型的值、对象的引用、函数的引用。这在Ecmascript-262标准中可以找到理论依据:
<div class="quote_title">Ecmascript-262 3rd
页:
[1]