我觉得还是得做个题,尝试一下
// this是什么 ? 这句话值千金 谁调指向谁,不写默认指向Window
var numbers = {
numberA: 5,
numberB: 10,
sum: function () {
console.log(this === numbers);//true
function calculate() {
console.log(this);
console.log(this === numbers);//false
return this.numberA + this.numberB;
}
return calculate();
}
}
console.log(numbers.sum());//NaN
var numbers = {
numberA: 5,
numberB: 10,
sum: function () {
console.log(this === numbers); //ture
function calculate() {
console.log(this === numbers);//false
return this.numberA + this.numberB;
}
return calculate;
}
}
var f = numbers.sum(); //f==calculate函数
console.log(f()); //NaN
var numbers = {
numberA: 5,
numberB: 10,
sum: function () {
console.log(this === numbers); //false
function calculate() {
console.log(this === numbers);//false
return this.numberA + this.numberB;
}
return calculate();
}
}
var f = numbers.sum;//f==sum函数
console.log(f()); //NaN
var numbers = {
numberA: 5,
numberB: 10,
sum: function () {
console.log(this === numbers);
function calculate() {
console.log(this === numbers);
return this.numberA + this.numberB;
}
return calculate;
}
}
var f = numbers.sum();
numbers.f = f;//给numbers加了一个属性f 且f的值为 calculate 函数
console.log(numbers.f());//15
的确 这句话值千金 谁调指向谁,不写默认指向Window