对下面的函数调用 toString() 会在浏览器中返回不同的字符串。我理解这是因为 ECMA-262 15.3.4.2 为每个供应商留下了回旋余地。
除了所有语法之外,Chrome 还会返回注释。遗憾的是 Firefox 3.6 忽略了这些注释。根据 Firefox 的行为,我还没有测试过 IE、Opera 或 Safari。
function foo() {
/* comment */
var bar = true;
}
具体来说,我试图将元数据嵌入到函数内的特殊格式的注释块中。稍后,函数 toString() 方法的返回值将被解析,并将值作为对象返回。
我一直无法找到兼容性表或 toString() 的替代方案。社区有什么想法吗?顺便说一句,预处理 JS 文件不是一个选项。 :(
多谢。 :)
虽然不像嵌入注释那么直接,但由于函数是 JS 中的一流对象,因此您可以为它们指定任意属性。例如。:
> function f(x) { return x * x; }
undefined
> f
function f(x) { return x * x; }
> f.comment = 'Hello'
Hello
> f.comment
Hello
通过这种方式,您可以干净且可移植地将元数据嵌入到函数对象中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)