eval函数是一种动态生成代码的强大而简单的方法,那么有什么警告呢?
有没有办法可以在Javascript中定义类似于C/C++宏的宏?
我想将它用于调试语句:类似于
#ifdef TEST__
#define MYDEBUG(##x) debug(__FILE__,x)
#else
#define debug
#endif
Run Code Online (Sandbox Code Playgroud)
不一定相似,但我想要实现这一功能.有没有办法可以做到这一点?
谢谢
最近我看到有人谈论JavaScript中宏的使用。我不知道这意味着什么,在 MDN 上查找文档后,我没有找到任何答案。这引出了我的问题 \xe2\x80\xa6
\n\n什么是 JavaScript 宏?
\n如何/为何使用它们?
\n这是元编程的一种形式吗?
带有示例和示例代码的答案将不胜感激。
\n我正在构建一个网络应用程序,我想包含一个宏记录器,就像这里演示的那样:http ://blog.metawrap.com/2007/06/22/javascript-macro-recorder/
这个宏记录器的问题是它不再被维护,并且在较新的浏览器中(或者至少在 Chrome 中)似乎会崩溃。有没有可以推荐的基于 JavaScript/jQuery 的宏录制器。
注意:我并不是指 本文中引用的与“Lisp 风格”宏相关的任何内容。我的意思是一个实际的宏记录器,它将捕获和记录鼠标和键盘事件。
我有这个Rational类,每个操作都有一个方法(add,mult等)
function Rational(nominator, denominator){
this.nominator = nominator;
this.denominator = denominator || 1;
}
Rational.prototype = {
mult: function(that) {
return new Rational(
this.nominator * that.nominator,
this.denominator * that.denominator
);
},
print: function() {
return this.nominator + '/' + this.denominator;
}
};
var a = new Rational(1,2),
b = new Rational(3);
console.log( a.mult(b).print() ); // 3/2
Run Code Online (Sandbox Code Playgroud)
我可以让它更"自然",例如启用console.log( a * b )吗?
javascript dsl operator-overloading fractions prototypal-inheritance