javascript动态构建

摘自《javascript王者归来》

javascript的eval函数是一个神奇的东西,它可以将字符串作为脚本来执行,这样为我们设计和实现动态解析器提供了可能。

最简单的解析器是按照Javascript的语法规则原样解释代码。

eval("alert('hello world!');");

然而,除了原样解释代码之外,我们可以通过技巧拼接字符串生成要执行脚本。如:

var name = "akira";

eval("alert('Hello  ' + name + '!')");
闭包来实现
var foo = (function(name){return function(){alert("Hello " + name + "!");}})("akira");

foo();
采用动态解析器与使用闭包最大不同之处是我们在读取字符串之后到把字符串当作脚本执行前,可以先对字符串进行一些处理,
这个能力给了我们扩展javascript本身的力量;
 
function compile(code)

{

code = code.replace(/@import/s(/w+)/,"$import('$1');");

return eval(code);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值