function, new function, new Function之间的区别
函数是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 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 这个方式是不常使用的,效果和方法三一样,不过不清楚不用new来生成有没有什么副作用,这也体现了JavaScript一个最大的特性:灵活!能省就省。
使用方法一:
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());
300 这是一个比较puzzle的function的使用方式,好像是定一个函数。但是实际上这是定一个JavaScript中的用户自定义对象,不过这里是个匿名类。这个用法和函数本身的使用基本没有任何关系,在大扩号中会构建一个变量作用域,this指代这个作用域本身。
使用方法三:
var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo3));
alert(foo3());
300 使用系统内置函数对象来构建一个函数,这和方法一中的第一种方式在效果和初始化优先级上都完全相同,就是函数体以字符串形式给出。
使用方法四:
var foo4 = Function('var temp = 100; this.temp = 200; return temp + this.temp;');
alert(typeof(foo4));
alert(foo4());
function
300 这个方式是不常使用的,效果和方法三一样,不过不清楚不用new来生成有没有什么副作用,这也体现了JavaScript一个最大的特性:灵活!能省就省。
相关推荐
在这篇文章中,我们将深入探讨Function和Object的关系,了解它们之间的联系和区别。 Function:函数对象 ---------------- 在JavaScript中,函数是一个对象,它代表了函数的概念。所有的函数对象都是由Function这...
在JavaScript的ES6标准中,`new Function()` 是一种创建函数的方法,虽然它不常用,但在某些特定场景下,如动态生成代码或处理服务器返回的函数逻辑时,它显得非常实用。下面我们将深入探讨`new Function()` 的语法...
`new Function()` 是JavaScript中的一个不太常见的构造函数,它允许我们动态地创建函数。这个方法在某些特定场景下非常有用,尽管在日常编程中不常用,因为它与传统的函数声明和匿名函数表达式相比,可能存在一些...
eval 和 new Function 的邪恶使用介绍 Eval 和 new Function 是 JavaScript 中两个强大的函数,但是它们也可以被恶意使用,导致潜在的安全风险。在这篇文章中,我们将探讨 Eval 和 new Function 的邪恶使用介绍,...
smoothing a function
根据参数数量和返回类型,DB2函数可以分为标量函数(Scalar Function)、聚合函数(Aggregate Function)和窗口函数(Window Function)。 2. **创建函数**:使用`CREATE FUNCTION`语句来定义一个新的函数。例如,...
情景一:var yx01 = new function() {return “圆心”}; alert(yx01); 我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于: function 匿名类(){ return “圆心”; } var yx...
在进行Flash与C#之间的交互时,经常会遇到通过`CallFunction`方法调用C#端函数出现COM组件错误的情况,尤其是当返回值类型设置为`xml`时,容易出现`HRESULT E_FAIL`这类错误。本文将详细分析这一问题,并提供一种...
在JavaScript编程中,`eval` 和 `new Function` 都被用来执行字符串化的JavaScript代码,但它们之间存在着一些重要的区别和使用场景上的考量。本文将深入探讨这两个函数的特性和性能差异,帮助开发者做出明智的选择...
var func = new Function('arg1', 'arg2', 'alert(arg1 + " : " + arg2)'); func('ooo', 'ppp'); // 弹出框显示 'ooo : ppp' ``` 这种方式可以动态创建并执行函数,但在生产环境中需谨慎使用,因为它可能存在安全...
Namespace xFunction Public Class f Const NumList = "零壹贰叁肆伍陆柒捌玖" Const UnitList = "仟佰拾亿仟佰拾万仟佰拾元角分" Public Shared Sub StringList() Dim tmepList As New List(Of String) ...
在没有专门的语法解析库的情况下,可以利用JavaScript自身提供的功能来进行简单的语法验证,如使用`eval()`或`new Function()`。 `eval()`方法是JavaScript中的一个函数,它能够将字符串作为JavaScript代码执行。在...
【标题】: "深入理解JavaScript中的new Function与函数作用域和执行顺序" 【描述】: 本文将探讨JavaScript中不常见的new Function构造函数的用法,以及函数的作用域和执行顺序这两个关键概念。通常,我们定义函数的...
FTrace is a relatively new kernel tool for tracing function execution in the Linux kernel. Recently, FTrace added the ability to trace function exit in addition to function entry. This allows for ...
然而,在深入学习JavaScript的过程中,不少开发者对于语言内部的一些概念仍感困惑,比如Object与Function之间的关系及其如何影响`instanceof`运算符的结果。 #### 二、JavaScript对象体系结构概述 在JavaScript...
本文将深入探讨JS对象与JSON的互换、New Function构造函数、forEach方法以及DOM事件流等核心知识点,同时还会涉及JavaScript的数据类型、运算符、Memoization技术及闭包。 1. **数据类型**: JavaScript提供了七种...