在javascript中使用bind函数的同时,我创建了一个存在于对象中的全局变量(包含相同的变量和用于检索该变量的函数)。
let x = 9;
const module1 = {
x: 81,
getX : function( ) {
return this.x;
}
};
console.log(module1.getX()); //output 81
let varX = module1.getX;
console.log(varX()); // output undefined
let boundGetX = varX.bind(module1);
console.log(boundGetX()); //output 81
现在,如果我从第一行中删除let关键字
x = 9;
const module1 = {
x: 81,
getX : function( ) {
return this.x;
}
};
console.log(module1.getX()); //output 81
let varX = module1.getX;
console.log(varX()); // output 9
let boundGetX = varX.bind(module1);
console.log(boundGetX()); //output 81
为什么console.log(varX())
的输出与let关键字的输出不同?