今天有个朋友说要接下面的代码,让我来解释一下原因。
复制代码代码如下所示:
窗口;
var对象{ { {
名称:我的对象
GetNameFunc:函数(){
返回函数(){
返回this.name;
};
}
};

警报(object.getnamefunc()));原因是,这个JS是动态确定的,有直接关系到你的方式调用它。

总之,如果在调用函数时使用对象,使用函数名的方式,则如下所示。(点)前面的对象,否则是窗口。
例如,当你打电话object.getnamefunc(),这在getnamefunc函数体是一个新近宣布的对象。如果你把它
复制代码代码如下所示:
VAR函数= object.getnamefunc;
Func();

在这个时候,这在getnamefunc函数体是窗口,虽然在调用同一个函数方式的差异决定了这之间的差异。
以同样的方式,object.getnamefunc()返回一个函数参考,加括号的是让函数执行。事实上,这相当于下面的代码
复制代码代码如下所示:
VAR函数= object.getnamefunc();
警报(函数());

函数之前没有对象。这个窗体,所以当函数被执行时,这是窗口,结果是显而易见的。

我会写在JS这个未来的文章,欢迎您关注我的CSDN博客tt361。