解决代码太长的问题
利用
+
连接字符串var func = new Function( 'a', 'b', 'c', 'var res = a > b ? a : b;' + 'res = res > c ? res : c;' + 'return res;' );
利用字符串特性
function foo ( a, b, c ) { var res = a > b ? a : b; res = res > c ? res : c; return res; } var func = new Function( 'a', 'b', 'c', 'return foo( a, b, c );');
ES6 语法(很少有浏览器实现)
使用键盘左上角的
`
表示可换行字符串的界定符,之前我们用的是单引号或者双引号来表示一个字符串字面量,在ES6中可以用反引号来表示该字符串可换行。(最终)利用 DOM 的特性完成该方法
<div id="code" style="display:none"> var res = a > b ? a : b; res = res > c ? res : c; return res; </div> <script> var txt = document.getElementbyId("code).innerHtml + ' '; var func = new Function('a', 'b', 'c', txt); </script>