JavaScript Function类是干什么用的,有什么用?使用Function如何创建函数?
2012-11-16 00:00
260 查看
在JavaScript运行时中有一个内建的类叫做Function,用function关键字声明一个函数其实是创建Function类对象的一种简写形式,所有的函数都拥有Function类所有的方法,例如call、apply、bind等等,可以通过instanceof关键字来验证这个说法。
既然Function是一个类,那么它的构造函数就是Function(它本身也是Function类的对象),应该可以通过new关键字来生成一个函数对象。第一个妖怪来了,那就是如何用Function类构造一个函数。Function的语法如下:
1 new Function ([arg1[, arg2[, ... argN]],] functionBody)
其中arg1, arg2, ... argN是字符串,代表参数名称,functionBody也是字符串,表示函数体,前面的参数名称是可多可少的,Function的构造函数会把最后一个参数当做函数体,前面的都当做参数处理。
1 var func1 = new Function('name', 'return "Hello, " + name + "!";');
2 func1('Ghostheaven'); // Hello, Ghostheaven!
以上方法就通过Function构造了一个函数,这个函数跟其他用function关键字声明的函数一模一样。
看到这儿,很多人可能会问为什么需要这样一个妖怪呢?“存在的即是合理的”,Function类有它独特的用途,你可以利用它动态地生成各种函数逻辑,或者代替eval函数的功能,而且能保持当前环境不会被污染*。
reference: http://www.dl268.com/?q-22355.html
既然Function是一个类,那么它的构造函数就是Function(它本身也是Function类的对象),应该可以通过new关键字来生成一个函数对象。第一个妖怪来了,那就是如何用Function类构造一个函数。Function的语法如下:
1 new Function ([arg1[, arg2[, ... argN]],] functionBody)
其中arg1, arg2, ... argN是字符串,代表参数名称,functionBody也是字符串,表示函数体,前面的参数名称是可多可少的,Function的构造函数会把最后一个参数当做函数体,前面的都当做参数处理。
1 var func1 = new Function('name', 'return "Hello, " + name + "!";');
2 func1('Ghostheaven'); // Hello, Ghostheaven!
以上方法就通过Function构造了一个函数,这个函数跟其他用function关键字声明的函数一模一样。
看到这儿,很多人可能会问为什么需要这样一个妖怪呢?“存在的即是合理的”,Function类有它独特的用途,你可以利用它动态地生成各种函数逻辑,或者代替eval函数的功能,而且能保持当前环境不会被污染*。
reference: http://www.dl268.com/?q-22355.html
相关文章推荐
- C++语言笔试题目 C++中为什么用模板类&& 类中如何使用const &&函数重载,我们靠什么来区分调用的那个函数?靠返回值判断可以不可以
- 源码-JavaScript&jQuery交互式前端开发-第3章-函数、方法与对象-使用构造函数语法创建对象
- 在VC6.0中创建和使用静态链接库&&C如何调用C++ 成员函数
- 使用函数创建JavaScript的类和对象
- 如何创建邮件组?请问使用什么工具软件?
- 知识点摸清 - - function()——JavaScript 函数名后什么时候加括号,什么时候不
- [Effective JavaScript 笔记] 第13条:使用立即调用的函数表达式创建局部作用域
- javascript 直接创建对象与间接创建对象 私有函数不能访问this变量 是否使用var声明变量几个问题探讨
- Javascript:如何使用 escape()函数
- 6.文件系统――什么是交换分区以及如何创建和使用交换分区(free,reboot,mkswap,swapon,swapoff)
- 说说如何使用 JavaScript 创建防篡改对象
- JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
- 利用ATL创建com组件和如何在程序中使用组件的接口函数和设置接口的属性
- JavaScript的装饰器:它们是什么及如何使用
- Effective JavaScript Item 13 使用即时调用的函数表达式(IIFE)来创建局部域
- javascript创建对象之函数构造模式和原型模式结合使用(四)
- 新手来看:什么叫“使用Data Link 文件”?什么是UDL文件?如何创建?
- Javascript中调用一个函数(对象),使用new或者直接调用有什么区别?
- Javascript使用function创建类的两种方法(推荐)
- 如何在 ejs 模板中使用 helper function 外部函数进行特殊处理?