`
www-hello
  • 浏览: 98823 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript patterns 笔记(一) 全局变量

阅读更多

1.        全局变量:

myglobal = "hello"; // antipattern

console.log(myglobal); // "hello"

console.log(window.myglobal); // "hello"

console.log(window["myglobal"]); // "hello"

console.log(this.myglobal); // "hello"

 

2.     result 为一个隐含的全局变量

function sum(x, y) {

// antipattern: implied global

result = x + y;

return result;

}

修改方法:把 result 使用 var 变成函数范围内局部变量

function sum(x, y) {

var result = x + y;

return result;

}

 

3.       链式分配 作为var 声名的一部分

// antipattern, do not use

function foo() {

var a = b = 0;

// ...

}

 

4.       先声名局部变量,链式分配这些局部变量变成全局变量:

function foo() {

var a, b;

// ...

a = b = 0; // both local

}

 

5.       使用 var 声名的全局变量无法使用 delete 删除

// define three globals

var global_var = 1;

global_novar = 2; // antipattern

(function () {

global_fromfunc = 3; // antipattern

}());

// attempt to delete

delete global_var; // false

delete global_novar; // true

delete global_fromfunc; // true

// test the deletion

typeof global_var; // "number"

typeof global_novar; // "undefined"

typeof global_fromfunc; // "undefined"

 

6.       访问全局对象:

var global = (function () {

return this;

}());

 


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics