我在我自己写的webstorm里面写的代码,具体环境是javascript还是node.js我也不是很清楚,不知道和这个有没有关系。以下是我的代码:
var fullname ='John Doe';
var obj ={
fullname:'Colin Ihrig',
prop:{
fullname:'Aurelio De Rosa',
getFullname:function(){
return this.fullname;
}
}
};
//console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
然后输出的结果是undefined;
然后如果我把var去掉的话,就像这样。
fullname ='John Doe';
var obj ={
fullname:'Colin Ihrig',
prop:{
fullname:'Aurelio De Rosa',
getFullname:function(){
return this.fullname;
}
}
};
//console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
然后这样输出的就是john Doe;
求大神解答。
图片如下:

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在全局作用域下,使用
var a = xx等价于window.a = xx,同理:这样方法中
this指向window,最终调用的是window.fullname。你写的两段代码在浏览器环境中,执行结果一样,都是
john Doe。在 node 环境中,
var在全局定义只限于当前模块中,去除val就是global变量了。你骗人,两个答案都是一样的,我看了一样没区别,跑了几遍也没区别,都是John Doe。