是的,我之前见过这个问题并得到了回答.但这是我仍然不明白的:
如果我创建一个构造函数,并且不覆盖函数的prototype属性,那么我们将自动constructor属性挂在函数的prototype属性上.那是MyConstructor.prototype.constructor === MyConstructor=>真的.大.但是现在当我prototype用自己的对象覆盖并且不修补constructor属性时会发生什么?constructor现在不存在prototype,如果只引用原型链,那就是MyConstructor.prototype.constructor === Object=> true.精细.所以...
为什么在Javascript调试器(如Chrome)中,如果我用自己的对象覆盖构造函数的原型,然后新建一个构造函数的实例,然后在命令行上键入该实例变量,Chrome很高兴地告诉我类型?怎么知道??? 即我能做些什么来通过代码找出相同的东西?
简单的repro:
> function Foo() {}
undefined
> Foo.prototype.constructor === Foo
true
> Foo.prototype = {}
Object
> Foo.prototype.constructor === Foo
false
> f = new Foo()
Foo
> f
Foo
Run Code Online (Sandbox Code Playgroud)
它是纯粹的调试器魔术吗?
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |