JavaScript 中有两个机制可以“欺骗”词法作用域:eva

2022-10-21  本文已影响0人  海贼王Lorrin

非严格模式下可使用!!!

1、eval(‘代码块’);

function foo(str) {

//"use strict";

eval( str );

console.log( a ); // ReferenceError: a is not defined

}

foo( "var a = 2" );

2、with

var obj = {

a: 1,

b: 2,

c: 3

};

// 单调乏味的重复 "obj"

obj.a = 2;

obj.b = 3;

obj.c = 4;

// 简单的快捷方式

with (obj) {

a = 3;

b = 4;

c = 5;

}

不推荐使用 eval(..) 和 with 的原因是会被严格模式所影响(限

制)。with 被完全禁止,而在保留核心功能的前提下,间接或非安全地使用

eval(..) 也被禁止了。

上一篇下一篇

猜你喜欢

热点阅读