关于JavaScript中函数语句的推理

时间:2015-01-25 18:34:38

标签: javascript

请考虑以下代码:

function f() {
  function Ctor() {}
  return { instance: new Ctor(), referenceToCtor: Ctor };
}

var a = f();
var b = f();

a.instance instanceof a.referenceToCtor; // true
b.instance instanceof a.referenceToCtor; // false

这告诉我们instanceof和函数语句的含义是什么?

这是否意味着每次调用f时,都会实例化一个名为Ctor的全新Function-object,因此instanceof会返回false

这类似于instanceof Array和多个窗口的问题吗?

2 个答案:

答案 0 :(得分:3)

  

这是否意味着每次调用f时,都会实例化一个名为Ctor的全新Function-object,因此instanceof会返回false

  

这类似于instanceof Array和多个窗口的问题吗?

答案 1 :(得分:2)

函数声明在给定范围内创建变量,每次运行外部函数时都会得到一个新函数和新范围。

是和是。