Javascript 两种 function 定义的区别
大家都知道Javascript 有兩個種定義Function的方法非常常用。例如?
function a(){alert("a")} var a = function(){alert("a")}在javascript中任何函數(shù)都是Function的對象,一種我們叫做隱式創(chuàng)建,一種叫顯示創(chuàng)建,
啥叫顯示創(chuàng)建,就是寫出來有個關(guān)鍵字NEW,(可以不算很科學(xué)的先這樣理解)例如
var test=new Function(cs1,cs2….csN,function-body)注意里面的cs1,cs2..表示參數(shù),而function-body表示函數(shù)體,利用函數(shù)對象變量名就可以調(diào)用該函數(shù),可以這樣調(diào)用test(cs1,cs2…),或者賦值給某個變量同樣,可以用那個變量調(diào)用。
var test=new Function("cs1","cs2","alert(cs1+cs2)"); test(1,2);效果等同于我們的隱式創(chuàng)建
function test(cs1,cs2) { alert(cs1+cs2); } test(1,2) // var test1=test; //test1(1,2);所以大家隱式對象的時候,一定要想著它是通過new 關(guān)鍵字創(chuàng)建的Function對象,
alert(test.toString());就可以輸出函數(shù)體的代碼
除此之外,通常情況下,我們還會使用無名函數(shù)來創(chuàng)建函數(shù)
var test=function(cs1,cs2) { alert(cs1+cs2); } test(1,2);效果等同于我們的顯示創(chuàng)建,那么既然是創(chuàng)建的函數(shù)變量是對象,我們就可以給變量添加新的屬性和方法,而在我們的js中方法就是特別的屬性,這點需要注意
test.love="i love php"; alert(test.love); test.php=function(msg) { alert(msg); } test.php("how to study php!");?
轉(zhuǎn)載于:https://www.cnblogs.com/yeminglong/archive/2013/06/15/3137730.html
總結(jié)
以上是生活随笔為你收集整理的Javascript 两种 function 定义的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU-4483 Lattice tri
- 下一篇: 仿Word自动套用格式,用CSS设置表格