javascript定义函数的几种类型
javascript定义函数的几种类型是什么
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
函数声明
在之前的教程中,你已经了解了函数声明的语法 :
function functionName(parameters) {
执行的代码
}
函数声明后不会立即执行,会在我们需要的时候调用到。
函数构造器
函数构造器用于创建一个函数对象,在JavaScript中实际上每一个函数都是一个函数对象。
函数构造器的语法:
new Function ([arg1[, arg2[, ...argN]],] functionBody)
arg1, arg2, ... argN 被用于作为函数正常参数名的变量名字,这些变量名必须是符合JavaScript变量标识规范的表示单个变量的字符串或者以逗号分隔的表示多个变量的字符串,比如"x", "theValue", or "a,b"。
functionBody 包含函数定义的JavaScript语句的字符串。
描述
1.函数对象在函数构造器被解析成为函数的时候被创建。但是这样会比以函数声明、函数表达式等方式低效,因为这些函数时通过代码直接解析的。
2.传递给函数构造器的字符串参数都会被当作函数构造器生成函数的变量参数名字,以他们出现的顺序作为生成的函数的参数的顺序。
3.以函数的方式调用函数构造器(不管用不用new关键词修饰)效果一样。
例子
// Example can be run directly in your JavaScript console
// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function('a', 'b', 'return a + b');
// Call the function
adder(2, 6);
// > 8
参数a和b是可以在函数体内使用的正常的参数名字。
生成的函数为:
function (a,b){undefined
return a+b;
}
关于json解析的一种方式:var json = (new Function("return " + str))();
原理一样,
生成的函数为:
function toJson(str){undefined
return str;
}
var str="{'a':1,'b':'abc'}";
toJson(str);
即:function(){return {'a':1,'b':'abc'}}
函数构造器和函数声明的区别:
用函数构造器创建的函数不会在上下文中创建闭包,它们总是被创建在全局作用域中,当执行被创建的函数时,它们只能使用自己的局部变量或者全局变量,这和eval是不同的。
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
函数声明
在之前的教程中,你已经了解了函数声明的语法 :
function functionName(parameters) {
执行的代码
}
函数声明后不会立即执行,会在我们需要的时候调用到。
函数构造器
函数构造器用于创建一个函数对象,在JavaScript中实际上每一个函数都是一个函数对象。
函数构造器的语法:
new Function ([arg1[, arg2[, ...argN]],] functionBody)
arg1, arg2, ... argN 被用于作为函数正常参数名的变量名字,这些变量名必须是符合JavaScript变量标识规范的表示单个变量的字符串或者以逗号分隔的表示多个变量的字符串,比如"x", "theValue", or "a,b"。
functionBody 包含函数定义的JavaScript语句的字符串。
描述
1.函数对象在函数构造器被解析成为函数的时候被创建。但是这样会比以函数声明、函数表达式等方式低效,因为这些函数时通过代码直接解析的。
2.传递给函数构造器的字符串参数都会被当作函数构造器生成函数的变量参数名字,以他们出现的顺序作为生成的函数的参数的顺序。
3.以函数的方式调用函数构造器(不管用不用new关键词修饰)效果一样。
例子
// Example can be run directly in your JavaScript console
// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function('a', 'b', 'return a + b');
// Call the function
adder(2, 6);
// > 8
参数a和b是可以在函数体内使用的正常的参数名字。
生成的函数为:
function (a,b){undefined
return a+b;
}
关于json解析的一种方式:var json = (new Function("return " + str))();
原理一样,
生成的函数为:
function toJson(str){undefined
return str;
}
var str="{'a':1,'b':'abc'}";
toJson(str);
即:function(){return {'a':1,'b':'abc'}}
函数构造器和函数声明的区别:
用函数构造器创建的函数不会在上下文中创建闭包,它们总是被创建在全局作用域中,当执行被创建的函数时,它们只能使用自己的局部变量或者全局变量,这和eval是不同的。
上一篇:php中的ajax
下一篇:没有了
相关文章
-
出去千万别说UI和美工是一个职业,千万别暴露你的缺点哦
文章来源:老铁商城2019-10-31 -
我优化多年的 C 语言竟然被 80行Haskell 打败了?
文章来源:老铁商城2019-10-20 -
当程序员遇到中秋节,会产生怎样的化学反应......
文章来源:老铁商城2019-09-18 -
淘宝、京东这些网站的哪个部分用了web前端技术?你能学会吗?
文章来源:老铁商城2019-09-18 -
Linux和哪些行业有关?2019Linux运维必备哪些技能?
文章来源:老铁商城2019-09-18 -
公认最具影响力的4种编程语言!平均薪资20K,Java第一
文章来源:老铁商城2019-09-18 -
PYPL 9 月编程排行榜:Python第一,继续称霸!就业薪资怎么样?
文章来源:老铁商城2019-09-18