在JavaScript中推理函数语句(Reasoning about function statements in 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和多个窗口的问题吗?

Consider the following code:

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

What does this tell us about the meaning of instanceof and function statements?

Does this mean that each time f is invoked a completely new Function-object named Ctor is instantiated and hence instanceof returns false.

Is this similar to the problems of instanceof Array and multiple windows?

最满意答案

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

是。

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

是。

Does this mean that each time f is invoked a completely new Function-object named Ctor is instantiated and hence instanceof returns false.

Yes.

Is this similar to the problems of instanceof Array and multiple windows?

Yes.

在JavaScript中推理函数语句(Reasoning about function statements in 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和多个窗口的问题吗?

Consider the following code:

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

What does this tell us about the meaning of instanceof and function statements?

Does this mean that each time f is invoked a completely new Function-object named Ctor is instantiated and hence instanceof returns false.

Is this similar to the problems of instanceof Array and multiple windows?

最满意答案

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

是。

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

是。

Does this mean that each time f is invoked a completely new Function-object named Ctor is instantiated and hence instanceof returns false.

Yes.

Is this similar to the problems of instanceof Array and multiple windows?

Yes.