理解JavaScript变量作用域更轻松(2)


//定义一个匿名函数,然后把代码丢到这个匿名函数里面,能有效减少命名冲突或变量污染,这是常见JS框架的做法
(function()
{
var msg='This is message';
alert(msg);
})();
document.write(msg); //msg未定义 (匿名函数外的其它方法已无法调用msg这个变量)
//-----------------------------
var msg='This is message';
alert(msg);


3、不建议在无须实例化的函数内使用this代替window去访问全局变量。一般情况使用this关键字的函数应当作为JavaScript类来处理(我喜欢把“cls”作为类名的前缀)。以下函数如果仅当作普通函数调用一下,就不应该出现this关键字,因为这通常是去操作一个全局变量了。例子:

复制代码 代码如下:


function clsMsg()
{
this.msg='This is default message';
this.showMsg=function()
{
alert(this.msg);
}
}
sMsg=new clsMsg();
sMsg.msg='This is new message';
sMsg.showMsg();


四、相关知识点指引
理解以下相关知识点有助于你更好地认识JavaScript变量作用域,本文暂不详述,随后会以单独篇幅来讲,敬请关注。
(1)理解JavaScript“预解析”
(2)JavaScript闭包

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjyzdz.html