时间:2021-05-26
就是这种盲目无原理依据的研究测试弄晕了我, 有必要这么做吗? 其实理解了原理就没必要搞这么多一个一个的试, 然后得出规律, ECMAScript规则都已经定义好了.
var的规则是: 使用var声明变量就是内部变量, 否则就是先调用全局变量, 不管多少层函数.
this的规则是: method函数里的this永远指向自身, 普通函数的this永远指向DOMWindow.
// GodDamnTest1function Foo() { var a = 123; // 局部变量, 所有子函数的全局变量this.a = 456; // 对象属性(function() { alert(a); // 123, 全局alert(this.a); // undefined, 普通函数, this指向DOMWindow })(); } var f = new Foo(); // GodDamnTest2function Foo() { var a = 123; this.a = 456; (function(a) { // 局部声明alert(a); // 456, 被函数局部声明的a覆盖了全局 })(this.a); } var f = new Foo(); // GodDamnTest3function Foo() { var a = 123; this.a = 456; (function() { alert(a); // 123, 全局alert(this.a); // undefined, DOMWindow this.b = 789; // window.b = 789})(); (function() { alert(this.b); // 789, window.b})(); } var f = new Foo(); (function() { alert(this.b); // 789, window.b})(); // GodDamnTest4function Foo() { (function() { this.b = 789; // window.b = 789})(); (function() { alert(this.b); // 789, window.bvar b = 0; alert(b); // 0, 这样的测试也写出来了!})(); } var f = new Foo(); (function() { alert(this.b); // 789, window.balert(b); // 789, window.b})();令人意外的是,最后一个 alert(b),结果仍然是 789。 // no damn surprise at all!
// GodDamnTest5function Foo() { (function() { this.b = 789; // window.b = 789})(); (function() { alert(this.b); // 789, window.balert(b); // undefined, 全局var b = 0; alert(b); // 0, 还有这种测试!})(); } var f = new Foo(); (function() { alert(this.b); // 789, window.balert(b); // 789, window.b})();PS:JS删除局部变量的方法
alert('value:'+str+'\ttype:'+typeof(str)) //声明变量前,引用var str="dd";alert('value:'+str+'\ttype:'+typeof(str)) //声明并赋值变量后,引用str=undefined; //删除局部变量alert('value:'+str+'\ttype:'+typeof(str)) //取消变量后,引用,和第一个相同以上所述是小编给大家介绍的JS全局变量和局部变量最新解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C语言全局变量和局部变量详解核心内容:1、局部变量和全局变量变量按照作用域分为:全局变量和局部变量全局变量的作用域:从定义位置开始到下面整个程序结束。局部变量的
全局变量和局部变量的定义是: 1、局部变量:“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。 2、全局变量:“在函数外定义的变量”
1、首先我们要知道变量作用域链变量的作用域分两种:全局变量和局部变量。没有定义到任何函数中的变量为全局变量,在函数中定义的变量为局部变量,注意在函数内部定义变量
变量的作用域和存储方式1.简述变量按作用域的分类变量按作用域分:分为全局变量和局部变量全局变量:在所有函数外部定义的变量叫做全局变量全局变量的使用范围:从定义位
AxureRP8中的变量有全局变量和局部变量,全局变量作用范围是一个页面,是树形菜单中的一个节点;局部变量作用范围是一个实例或一个事务,作用范围较小。下面利用一