讲师回答 / Bosn
为了一致。例如function foo(){} 这样定义后,默认foo.prototype.constructor就是指向foo的。由于修改了prototype,所以要对constructor做还原。
2015-05-28
已采纳回答 / 糖乐
以下是个人理解,并有在某浏览器实践过,不知道其他游览器怎么样。其实可以直接foo.x=3;的,只不过这个时候这个属性是在该对象上的,即可以用foo.x;来调用,会输出3。执行foo.hasOwnProperty('x');返回true。此时如果obj.x(假如obj本身没有定义这个属性),则会输入undefined,应该是因为foo.x是局部变量吧!此时可以通过obj.constructor.x来获取。而foo.prototype.z=4;此时的z为原型链上的。如果你此时直接foo.z是会输入undefi...
2015-05-27
已采纳回答 / arlenhui
个人理解:初始化阶段: a:undefined foo:<ref of function>执行阶段: a:1 foo:function(){ /*function*/};然后function内开始初始化,初始化后由于没有调用,所以没有执行阶段。然后foo()调用,开始function内部的执行阶段
2015-05-25