相关疑难解决方法(0)

EXTENDS挑战:预处理器函数宏和类类oop

背景

我一直在使用C预处理器来管理和"编译"包含多个文件和构建目标的半大型JavaScript项目.这使全面进入C预处理指令一样#include,#define,#ifdef等从JavaScript中.这是一个示例构建脚本,因此您可以测试示例代码:

#!/bin/bash
export OPTS="-DDEBUG_MODE=1 -Isrc"
for FILE in `find src/ | egrep '\.js?$'`
do
  echo "Processing $FILE"
  cat $FILE  \
  | sed 's/^\s*\/\/#/#/'  \
  | cpp $OPTS  \
  | sed 's/^[#:<].*// ; /^$/d'  \
  > build/`basename $FILE`;
done
Run Code Online (Sandbox Code Playgroud)

创建一个src和一个build目录,然后放入.js文件src.


便利宏

最初,我只是想要预处理器的东西#include,也许还有几个#ifdef,但我想,有一些方便的宏也不是很好吗?随后进行了实验.

#define EACH(o,k)     for (var k in o) if (o.hasOwnProperty(k))
Run Code Online (Sandbox Code Playgroud)

很酷,所以现在我可以这样写:

EACH (location, prop) {
  console.log(prop + " : " location[prop]);
}
Run Code Online (Sandbox Code Playgroud)

它将扩展到: …

javascript shell macros preprocessor prototypal-inheritance

7
推荐指数
1
解决办法
607
查看次数