node.js - javascript中关于变量是否声明的问题。
本文介绍了node.js - javascript中关于变量是否声明的问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我在我自己写的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;
求大神解答。
图片如下:
解决方案
在全局作用域下,使用 var a = xx
等价于 window.a = xx
,同理:
var test = obj.prop.getFullname;
// 等价于
window.test = obj.prop.getFullname;
这样方法中 this
指向 window
,最终调用的是 window.fullname
。
你写的两段代码在浏览器环境中,执行结果一样,都是 john Doe
。
在 node 环境中,var
在全局定义只限于当前模块中,去除 val
就是 global
变量了。
这篇关于node.js - javascript中关于变量是否声明的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文