Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript绑定方法_Javascript_Function_Methods_Bind - Fatal编程技术网

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(默认值)中在浏览器的模式中,
窗口
对象。在严格模式下,它将是
未定义的
。您可以通过选中
此===窗口
进行验证。此
是上下文相关的,并且将根据许多因素产生一个值。我建议您。