我创建了一个 javascript 代码片段,这里是可视化工具的链接function Foo(name) { this.name = name this.speak = function() { console.log(this.name) }}function init() { function init_() { var foo = new Foo('foo') foo.hear = function() { console.log('i can hear') } var bar = new Foo('bar') bar.look = function() { console.log('i can look') } foo.speak() bar.speak() } init_()}init()我有几个问题:又名原型对象是在哪个阶段Foo.prototype创建的?解释器何时加载Foo到全局范围或何时new Foo()首次被调用,或在任何其他阶段?它的引用存储在哪个词法范围内?(因为在可视化器中没有这样的参考)应该foo并共享属于而不是拥有自己的副本的bar方法,如可视化器中所示?speak()Foo.prototype原型链和范围链是否无关?例如,当foo.speak()被调用时,首先我们跟踪作用域链得到值的foo,然后原型链得到speak()?
添加回答
举报
0/150
提交
取消