360一道关于this的题目
2018-01-20 10:43
302 查看
原题目是这样子的:
window.val = 1; var obj = { val: 2, dbl: function () { this.val *= 2; val *= 2; console.log(val); console.log(this.val); } }; // 说出下面的输出结果 obj.dbl(); var func = obj.dbl; func();
this呢其实就是这样,分清楚调用就好了。。。
obj中的没有指定调用。默认从函数中查找。如果没有则往上一级查找。。。所以 上面的式子可以写成这样
window.val = 1;
window.val = 1; var obj = { val: 2, dbl: function () { this.val *= 2; val *= 2; console.log(val); console.log(this.val); } }; // 说出下面的输出结果 obj.dbl(); var func = obj.dbl; func();
这样一来答案就清晰明了了
obj.dbl();这个调用者是obj。。所以其中的this指向obj对象 // 2 4
var func = obj.dbl;
func();
这个呢是全局window调用的func()所以this指向window
不相信的话可以在这里console.log(this)。。。就知道每次调用的是谁。。。this到底是指向谁的
因为window.val 第一次运算结果是2
所以最后的结果就是 8 8
相关文章推荐
- 一道面试题目,关于this的理解
- 一道关于协议工程的题目
- 20080306:上海华为的一道关于指针的编程题目
- 一道关于加载顺序的题目分析
- 网易2009年校园招聘--一道关于<list>的STL题目
- 笔试的一道关于测试的题目
- 巨人笔试一道关于多态的题目
- 一道关于二维数组与指针的题目
- 一道关于排序的题目
- 关于一道cout题目
- 关于动态批处理的一道题目
- 关于fork的一道题目
- 网易2009年校园招聘--一道关于<list>的STL题目
- 一道关于二维数组和指针数组的C语言笔试题目
- 一道关于编译和指针的题目
- 关于一道题目的讨论
- javascript的一道this综合题目
- 关于一道面试题目的理解
- 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]
- 一道关于call和this的JS面试题