您的位置:首页 > Web前端 > JavaScript

Javascript 两种 function 定义的区别

2013-06-15 16:18 471 查看
大家都知道Javascript 有两个种定义Function的方法非常常用。例如

function a(){alert("a")}
var a = function(){alert("a")}


在javascript中任何函数都是Function的对象,一种我们叫做隐式创建,一种叫显示创建,

啥叫显示创建,就是写出来有个关键字NEW,(可以不算很科学的先这样理解)例如

var test=new Function(cs1,cs2….csN,function-body)


注意里面的cs1,cs2..表示参数,而function-body表示函数体,利用函数对象变量名就可以调用该函数,可以这样调用test(cs1,cs2…),或者赋值给某个变量同样,可以用那个变量调用。

var test=new Function("cs1","cs2","alert(cs1+cs2)");
test(1,2);


效果等同于我们的隐式创建

function test(cs1,cs2)
{
alert(cs1+cs2);
}
test(1,2)
// var test1=test;
//test1(1,2);


所以大家隐式对象的时候,一定要想着它是通过new 关键字创建的Function对象,

alert(test.toString());


就可以输出函数体的代码

除此之外,通常情况下,我们还会使用无名函数来创建函数

var test=function(cs1,cs2)
{
alert(cs1+cs2);
}
test(1,2);


效果等同于我们的显示创建,那么既然是创建的函数变量是对象,我们就可以给变量添加新的属性和方法,而在我们的js中方法就是特别的属性,这点需要注意

test.love="i love php";
alert(test.love);
test.php=function(msg)
{
alert(msg);
}
test.php("how to study php!");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: