为什么输出是undefined

var name = "bush";
var obj = {
name : "obama",
func : function(){
return function(){
return this.name;
}
}
}
console.log( obj.func()());//undefined
全部评论
obj.func()()  返回一个匿名函数。匿名函数的执行环境具有全局性,匿名函数的调用者是window。所以输出是 bush
点赞 回复 分享
发布于 2017-09-26 00:34
chorm测试了下,"use strict"下定义后执行保报错,正常情况可以取到全局的name
点赞 回复 分享
发布于 2017-09-26 00:06
输出bush啊…
点赞 回复 分享
发布于 2017-09-25 23:17
你用nodejs来执行的吧?代码放到浏览器再试一下
点赞 回复 分享
发布于 2017-09-25 23:01
判定this绑定: 函数是否在new调用,如果是this,绑定函数返回对象 函数是否通过显示绑定(call,apply)或者硬绑定(bind)调用 函数是否在某个context调用 如果都不是则使用默认绑定,严格模式下绑定undefinded,否则window
点赞 回复 分享
发布于 2017-09-25 22:41

相关推荐

码农索隆:邮件那么小的内存,把邮箱都干满了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务