Javascript 在这种情况下,This关键字适用于什么
我目前正在做一些练习,以加深对“this”关键字的理解。它似乎有很多用例,所以我确实在MDN上读到了“这个”。我想知道,这个练习中的“this”关键字指的是什么?我知道,当您使用apply(最多有2个参数)时,第一个参数是希望引用this“关键字”的位置,第二个参数是新引用this“关键字”的数组。其中是Javascript 在这种情况下,This关键字适用于什么,javascript,this,Javascript,This,我目前正在做一些练习,以加深对“this”关键字的理解。它似乎有很多用例,所以我确实在MDN上读到了“这个”。我想知道,这个练习中的“this”关键字指的是什么?我知道,当您使用apply(最多有2个参数)时,第一个参数是希望引用this“关键字”的位置,第二个参数是新引用this“关键字”的数组。其中是返回fn.apply(这是参数)被引用,第二个参数中的参数是什么?它在功能中,窗口中吗?对不起,我真的很困惑,想把我的头绕过去。这是我感到困惑的一行代码: function add(a, b)
返回fn.apply(这是参数)代码>被引用,第二个参数中的参数是什么?它在功能中,窗口中吗?对不起,我真的很困惑,想把我的头绕过去。这是我感到困惑的一行代码:
function add(a, b) {
return a + b;
}
function invokeMax(fn, num) {
var counter = 0;
return function() {
counter++;
if (counter > num) {
return 'Maxed Out!';
}
return fn.apply(this, arguments);
};
}
您可以在返回的函数中console.log()
this
,并找到答案。在这里,您将看到它指向全局对象(或浏览器中的窗口)。此代码不依赖于此
是否为任何特定内容。您可以将其改写为:
return fn.apply(null, arguments);
得到同样的结果
此
由调用函数的方式决定。这里的函数返回一个函数,您可能只需要自己调用该函数,因此唯一调用的上下文是窗口:
功能添加(a、b){
返回a+b;
}
函数invokeMax(fn,num){
var计数器=0;
返回函数(){
计数器++;
如果(计数器>数值){
返回“Maxed Out!”;
}
log(“这是窗口吗?”,这==窗口)
返回fn.apply(这是参数);
};
}
设f=invokeMax(加法,2)
log(f(5,6))
在该实例中,此
指当前作用域,即包含此
的函数。在JavaScript中,函数也是可以分配属性的对象。这是。我喜欢你的解释。非常感谢你。为了确保我正确理解这一点,fn.apply允许我接受全局范围内的任何函数作为我的第一个参数,对吗?apply
的第一个参数将是函数内部用作this
的值。使用一个简单的示例可能会更容易-请参见编辑以获取基本示例。