阿里巴巴js面试题3
2017-08-16 16:12
148 查看
转自http://blog.csdn.net/qq_27682041/article/details/76779986
该题难度系数: ★★★
考查的技术点: 1). this 2). 闭包
题目如下:
[javascript] view
plain copy
var name = "A"
var object = {
name: "B",
getNameFunc: function () {
return function () {
return this.name
}
}
}
console.log(object.getNameFunc()())
var name2 = "A"
var object2 = {
name2: "B",
getNameFunc: function () {
var that = this
return function () {
return that.name2
}
}
}
console.log(object2.getNameFunc()())
运行结果:
接下来我们分析一下:
第一道题:object.getNameFunc()里面有一个闭包,返回的是一个函数,然后加个()就表示函数的调用了。而此时是默认的执行方式,this代表window,那么name就是全局变量‘A’;
第二道题:注意到,里面先对this进行缓存起来,this代表object,当object.getNameFunc()返回一个函数时,调用就返回的是一个object的name2属性值'B'。
该题难度系数: ★★★
考查的技术点: 1). this 2). 闭包
题目如下:
[javascript] view
plain copy
var name = "A"
var object = {
name: "B",
getNameFunc: function () {
return function () {
return this.name
}
}
}
console.log(object.getNameFunc()())
var name2 = "A"
var object2 = {
name2: "B",
getNameFunc: function () {
var that = this
return function () {
return that.name2
}
}
}
console.log(object2.getNameFunc()())
运行结果:
接下来我们分析一下:
第一道题:object.getNameFunc()里面有一个闭包,返回的是一个函数,然后加个()就表示函数的调用了。而此时是默认的执行方式,this代表window,那么name就是全局变量‘A’;
第二道题:注意到,里面先对this进行缓存起来,this代表object,当object.getNameFunc()返回一个函数时,调用就返回的是一个object的name2属性值'B'。
相关文章推荐
- 阿里巴巴js面试题3
- 阿里巴巴js面试题2
- 阿里巴巴js面试题1
- 【JS每日练习】阿里巴巴web前端开发面试题
- 阿里巴巴js面试题1
- 阿里巴巴js面试题2
- 阿里巴巴常考面试题及汇总答案
- 李洪强iOS经典面试题147-WebView与JS交互
- JS面试题大坑之隐式类型转换实例代码
- 阿里巴巴面试题--Java对象初始化
- HTML+CSS+JS面试题
- 四道JavaScript面试题检测你的js基本功
- JS打印一些数字 面试题
- 一道JS addEventListener面试题
- 几道js面试题
- 新鲜出炉的百度js面试题
- 一道常被人轻视的前端JS面试题
- HTML+CSS+JS面试题
- 阿里巴巴面试题之英文语句分割问题
- js面试题:打印1-10000内的对称数的四种解法