一、函数的定义
1.function语句形式
//1.function语句式 function test1(){ alert("I am test1"); } test1();
2.函数直接量形式
//2.函数直接量形式 var test2 = function(){ alert("I am test2"); } test2();
3.通过Function构造函数形式
Function构造函数可以接收任意数量的参数,但最后一个参数始终都被看成函数体。我们不推荐使用,因为这种语法会导致解析两次代码,第一次是解析常规的JS代码,第二次是解析传入构造函数中的字符串,从而影响性能。
//3.通过Function构造函数形式 var test3 = new Function("a","b","return a + b"); alert(test3(10,20));
4.三种方式的区别
/* * 测试解析时机 */ test1();// I am test1 function test1(){ alert("I am test1"); } test2();//报错 var test2 = function(){ alert("I am test2"); } alert(test3(10,20)); var test3 = new Function("a","b","return a + b");
function语句是会被JS解析器优先解析。
/* * 测试函数作用域 */ var k = 1; function test(){ var k = 2; function demo(){ return k; } var demo = function(){ return k; } var demo = new Function("return k"); //1.function语句式: 2 //2.function字面量式: 2 //3.Function构造函数式: 1 alert(demo()); } test();
时间: 2024-11-05 13:51:06