当前位置: 代码迷 >> JavaScript >> JavaScript patterns 札记(一) 全局变量
  详细解决方案

JavaScript patterns 札记(一) 全局变量

热度:740   发布时间:2012-10-15 09:45:24.0
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;

}());

?


?

  相关解决方案