繁体   English   中英

以不同方式调用javascript函数

[英]Calling a javascript function in different ways

考虑我有一个功能为:

function test1() {
  this.x= 10;
  this.fun = function() {
   return function() {
   console.log(this.x);
  };
 };
}


var obj = new test1();
var returnFun = obj.fun();

有两种方法可以调用此函数:

returnFun();

returnFun.call(obj);

为什么不推荐使用第一种方法?在两种不同情况下, “ this”的值是什么? var obj = new test1(); 语句创建一个新对象,并将"this"的值设置为原型?

为什么第一个方法( returnFun(); )不returnFun();推荐?

该方法完全没有问题。

在两个不同的上下文中“ this”的值是什么?

在第一个示例中, this的值将是定义函数的外部范围,即window

要改变的范围this程序,使用call()apply()方法,如你在第二个例子中所做的那样。 这意味着对于第二个示例, this函数中的此obj将引用obj变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM