收到一只叮咚
2019-07-14 08:08:01
var a =function(){alert('234');}function a (){alert(123);}a();我置換上面兩種定義先后,怎么一直返回234
5 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
第一段:new function使用系統內置函數對象來構建一個函數
var sum=new function(a,b) 相當于:
function 匿名類();
var sum=new 匿名類(a,b);
當你執行new的時候就已經從Function創建了一個實例,而a , b 不存在 ,
所以輸出 a+b 按照數學運算 空值相加得到 NaN
第二段:var sum=function(a,b) 相當于:function sum(a,b)
所以可以輸出:ab;

SMILET
TA貢獻1796條經驗 獲得超4個贊
定義一個函數有幾種方法
//1、直接定義
function sum(a,b){
alert(a+b);
}
//2、使用Function的構造函數定義
var sum = new Function("a","b","alert(a+b)");
上面兩種定義方式都可以在后面調用sum(1,2)來運行。
你定義的第一種是new 了一個對象而不是函數,在new對象時a和b都沒有賦值所以打出了NaN

呼如林
TA貢獻1798條經驗 獲得超3個贊
javascript function定義寫法
1.function a(){}
2.var a=function(){}
3.var obj=new Object();
obj={
"a":function(){}
}
添加回答
舉報
0/150
提交
取消