javascript绑定方法
有人能给我解释一下下面代码中的这个词指的是哪个对象吗javascript绑定方法,javascript,function,methods,bind,Javascript,Function,Methods,Bind,有人能给我解释一下下面代码中的这个词指的是哪个对象吗 var fullAgeJapan=arrayCalc(ages,isFullAge.bind(this,20)); 如果我用ages(isFullAge.bind(ages,20))替换它,它的行为方式是相同的,我尝试在isFullAge函数中记录这个对象,但它返回了一堆我不太理解的信息 var years=[1990,1965,1937,2005,1998]; function arrayCalc(arr,fn){ var arr
var fullAgeJapan=arrayCalc(ages,isFullAge.bind(this,20));
如果我用ages(isFullAge.bind(ages,20))
替换它,它的行为方式是相同的,我尝试在isFullAge
函数中记录这个对象,但它返回了一堆我不太理解的信息
var years=[1990,1965,1937,2005,1998];
function arrayCalc(arr,fn){
var arrRes=[];
for(var i=0;i<arr.length;i++){
arrRes.push(fn(arr[i]));
}
return arrRes;
}
function calculateAge(el){
return 2020-el;
}
function isFullAge(limit,el){
return el>=limit;
}
var ages=arrayCalc(years,calculateAge);
var fullAgeJapan=arrayCalc(ages,isFullAge.bind(this,20));
console.log(years);
console.log(ages);
console.log(fullAgeJapan);
var年份=[19901965193720051998];
函数arrayCalc(arr,fn){
var arrRes=[];
对于(var i=0;i=limit;
}
var年龄=arrayCalc(年,计算);
var fullAgeJapan=arrayCalc(ages,isFullAge.bind(this,20));
对数(年);
控制台日志(ages);
控制台日志(fullAgeJapan);
在顶层这是窗口
对象。(因为您没有处于严格模式“
)
var年份=[19901965193720051998];
函数arrayCalc(arr,fn){
var arrRes=[];
对于(var i=0;i=limit;
}
var年龄=arrayCalc(年,计算);
console.log(此===窗口)
var fullAgeJapan=arrayCalc(ages,isFullAge.bind(this,20));
对数(年);
控制台日志(ages);
console.log(fullAgeJapan);
在浏览器的草率(默认)模式下,此
是窗口
对象。在严格模式下,它将是未定义的
。您可以通过断言此===窗口
来验证自己
但是,由于函数isFullAge
本身并不引用此
,因此将什么作为第一个参数传递给bind
,实际上并不重要。在这种情况下,只传递null
会更干净。在sloppy(默认值)中在浏览器的模式中,此
是窗口
对象。在严格模式下,它将是未定义的
。您可以通过选中此===窗口
进行验证。此
是上下文相关的,并且将根据许多因素产生一个值。我建议您。