以不同的方式调用javascript函数
假设我的职能是:以不同的方式调用javascript函数,javascript,jquery,object,this,Javascript,Jquery,Object,This,假设我的职能是: function test1() { this.x= 10; this.fun = function() { return function() { console.log(this.x); }; }; } var obj = new test1(); var returnFun = obj.fun(); 有两种方法可以调用此函数: returnFun(); 及 为什么第一种方法不可取?在两种不同的情况下,“this”的值是多少? 将var o
function test1() {
this.x= 10;
this.fun = function() {
return function() {
console.log(this.x);
};
};
}
var obj = new test1();
var returnFun = obj.fun();
有两种方法可以调用此函数:
returnFun();
及
为什么第一种方法不可取?在两种不同的情况下,“this”的值是多少?
将var obj=newtest1()代码>语句创建一个新对象并将“this”
的值设置为原型
为什么第一种方法(returnFun();
)不值得推荐
这种方法一点问题也没有
在两种不同的情况下,“这”的价值是什么
在第一个示例中,此
的值将是定义函数的外部范围,即窗口
要以编程方式更改此
的范围,请使用或方法,如第二个示例所示。这意味着对于第二个示例,函数中的This
将引用obj
变量
为什么第一种方法(returnFun();
)不值得推荐
这种方法一点问题也没有
在两种不同的情况下,“这”的价值是什么
在第一个示例中,此
的值将是定义函数的外部范围,即窗口
要以编程方式更改此的范围,请使用或方法,如第二个示例所示。这意味着对于第二个示例,函数中的
This
将引用obj
变量。两个调用中的“This”值不相同,例如:returnFun.call(obj);“this”的值是“obj”@RoryMcCrossan:我有一个澄清,当你在第一个例子中说,“this”将是函数定义的外部作用域,这意味着如果我把它放在一个函数a(){returnFun();}“this”将与a()的“this”相同吗?在两个调用中“this”的值不相同,例如:returnFun.call(obj); “this”的值是“obj”@RoryMcCrossan:我有一个澄清,当你在第一个例子中说,“this”将是函数定义的外部范围,这意味着如果我把它放在函数a(){returnFun();}中,“this”将与a()的“this”相同吗?
returnFun.call(obj);