JavaScript 中Function 小例子(解决代码过长问题)

需求:创建一个Function 函数,取三个数字中最大的那个

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',"var res=a>b ? a : b;res=res>c ? res : c;return res;");

解决代码太长的办法:

1.利用加法连接字符串

var func=new Function ('a','b','c',

'var res=a>b ? a : b;'+

'res=res>c ? res : c;'+

'return res;');

2.利用字符串特性

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);')

3.ES6的语法

使用键盘左上角的 左单引号 表示可换行字符串的界定符 ` 可换行字符串

ar func=new Function ('a','b','c',

`var res=a>b ? a : b;

res=res>c ? res : c;

return res;

`)

4.利用DOM的特性完成改方法

<div id="code" style="display:none">

var res=a>b ? a : b;

res=res>c ? res : c;

return res;

</div>

// var txt=document.getElementById('code').innerHTML+''; 大于号被转义,所以不行

var txt=document.getElementById('code').lastChild.nodeValue;

var func=new Function ('a','b','c',txt);