请问老师输出结果为什么是NaN
var obj = {
a: 1,
b: 2,
fun: function(){
console.log(this.a + this.b);
}
}
var a = 6
var b = 8
setTimeout(obj.fun, 2000);
源自:面向对象
3-8 上下文规则(5)
5
收起
正在回答
1回答
同学你好,这段代码输出的结果是14不是NaN。如下:
同学看看是不是贴错代码了。
如全局没有声明a和b的情况下会出现NaN
这是因为undefined + undefined 的结果就是NaN如下:
这里要注意一下,在这段代码中obj.fun方法中的this指向的是window。所以全局没有声明a和b的话那么进行this.a+ this.b就相当于是undefined+undefined。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星