函数是JavaScript中很重要的一个语言元素,并且提供了一个
function关键字和内置对象Function,下面是用法和它们之间区别。
使用方法一:
var foo01 = function() //or fun01 = function()
{
var temp = 100;
this.temp = 200;
return temp + this.temp;
}
alert(typeof(foo01));
alert(foo01());
运行结果:
function
300
最普通的function使用方式,定一个JavaScript函数。两种写法表现出来的运行效果完全相同,唯一的区别是后一种写法有较高的初始化优先级。在大扩号内的变量作用域中,this指代foo01的所有者,即window对象。
使用方法二:
var foo02 = new function()
{
var temp = 100;
this.temp = 200;
return temp + this.temp;
}
alert(typeof(foo02));
alert(foo02.constructor());
运行结果:
object
300
这是一个比较puzzle的function的使用方式,好像是定一个函数。但是实际上这是定一个
JavaScript中的用户自定义对象,不过这里是个匿名类。这个用法和函数本身的使用基本没有任何关系,在大扩号中会构建一个变量作用域,this指代这个作用域本身。
var obj = (new function(){
this.a = 123;
this.fn = function(e){alert(e)};
//return new String('123');
//return 123;
});
obj.fn(123);
可以理解返回一个对象。
(new function(){
return '123';
})
与
(new function(){
return new String('123');
}) 又有什么区别呐?
使用方法三:
var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo3));
alert(foo3());
运行结果:
function
300
使用系统内置函数对象来构建一个函数,这和方法一中的第一种方式在效果和初始化优先级上都完全相同,就是函数体以字符串形式给出。
使用方法四:
var foo4 = Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo4));
alert(foo4());
运行结果:
function
300
参考:
http://www.jb51.net/article/13894.htm
http://www.jb51.net/article/13895.htm
http://www.planabc.net/2008/02/20/javascript_new_function/
http://cykit.iteye.com/blog/72950
分享到:
相关推荐
### JavaScript中的function, new function, new Function之间的区别 在JavaScript编程语言中,函数是一等公民,这意味着函数不仅可以作为值被赋给变量、作为参数传递给其他函数,甚至还可以被当作返回值从函数中...
`new Function()` 是JavaScript中的一个不太常见的构造函数,它允许我们动态地创建函数。这个方法在某些特定场景下非常有用,尽管在日常编程中不常用,因为它与传统的函数声明和匿名函数表达式相比,可能存在一些...
eval 和 new Function 的邪恶使用介绍 Eval 和 new Function 是 JavaScript 中两个强大的函数,但是它们也可以被恶意使用,导致潜在的安全风险。在这篇文章中,我们将探讨 Eval 和 new Function 的邪恶使用介绍,...
在JavaScript的ES6标准中,`new Function()`是一个不太常见的构造函数,用于动态创建函数。它的工作原理是接受一个或多个参数,这些参数分别代表函数的参数名,然后是一个字符串,这个字符串包含了函数的实现代码。...
在JavaScript编程中,`eval` 和 `new Function` 都被用来执行字符串化的JavaScript代码,但它们之间存在着一些重要的区别和使用场景上的考量。本文将深入探讨这两个函数的特性和性能差异,帮助开发者做出明智的选择...
情景一:var yx01 = new function() {return “圆心”}; alert(yx01); 我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于: function 匿名类(){ return “圆心”; } var yx...
在这篇文章中,我们将深入探讨Function和Object的关系,了解它们之间的联系和区别。 Function:函数对象 ---------------- 在JavaScript中,函数是一个对象,它代表了函数的概念。所有的函数对象都是由Function这...
在没有专门的语法解析库的情况下,可以利用JavaScript自身提供的功能来进行简单的语法验证,如使用`eval()`或`new Function()`。 `eval()`方法是JavaScript中的一个函数,它能够将字符串作为JavaScript代码执行。在...
【标题】: "深入理解JavaScript中的new Function与函数作用域和执行顺序" 【描述】: 本文将探讨JavaScript中不常见的new Function构造函数的用法,以及函数的作用域和执行顺序这两个关键概念。通常,我们定义函数的...
smoothing a function
根据参数数量和返回类型,DB2函数可以分为标量函数(Scalar Function)、聚合函数(Aggregate Function)和窗口函数(Window Function)。 2. **创建函数**:使用`CREATE FUNCTION`语句来定义一个新的函数。例如,...
var func = new Function('arg1', 'arg2', 'alert(arg1 + " : " + arg2)'); func('ooo', 'ppp'); // 弹出框显示 'ooo : ppp' ``` 这种方式可以动态创建并执行函数,但在生产环境中需谨慎使用,因为它可能存在安全...
XmlTextWriter xw = new XmlTextWriter(new StringWriter(sb)); xw.WriteStartElement("invoke"); xw.WriteAttributeString("name", Fname); xw.WriteAttributeString("returntype", "xml"); xw....
Namespace xFunction Public Class f Const NumList = "零壹贰叁肆伍陆柒捌玖" Const UnitList = "仟佰拾亿仟佰拾万仟佰拾元角分" Public Shared Sub StringList() Dim tmepList As New List(Of String) ...