`

function, new function, new Function之间的区别

 
阅读更多

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一个最大的特性:灵活!能省就省。 
分享到:
评论

相关推荐

    理解Javascript Function与Object

    在这篇文章中,我们将深入探讨Function和Object的关系,了解它们之间的联系和区别。 Function:函数对象 ---------------- 在JavaScript中,函数是一个对象,它代表了函数的概念。所有的函数对象都是由Function这...

    ES6中new Function()语法及应用实例分析

    在JavaScript的ES6标准中,`new Function()` 是一种创建函数的方法,虽然它不常用,但在某些特定场景下,如动态生成代码或处理服务器返回的函数逻辑时,它显得非常实用。下面我们将深入探讨`new Function()` 的语法...

    你可能不知道的JavaScript的new Function()方法

    `new Function()` 是JavaScript中的一个不太常见的构造函数,它允许我们动态地创建函数。这个方法在某些特定场景下非常有用,尽管在日常编程中不常用,因为它与传统的函数声明和匿名函数表达式相比,可能存在一些...

    邪恶的eval和new Function使用介绍

    eval 和 new Function 的邪恶使用介绍 Eval 和 new Function 是 JavaScript 中两个强大的函数,但是它们也可以被恶意使用,导致潜在的安全风险。在这篇文章中,我们将探讨 Eval 和 new Function 的邪恶使用介绍,...

    new.tar.gz_NEW_smoothing function

    smoothing a function

    db2 function 和 procedure

    根据参数数量和返回类型,DB2函数可以分为标量函数(Scalar Function)、聚合函数(Aggregate Function)和窗口函数(Window Function)。 2. **创建函数**:使用`CREATE FUNCTION`语句来定义一个新的函数。例如,...

    详解new function(){}和function(){}() 区别分析

    情景一:var yx01 = new function() {return “圆心”}; alert(yx01); 我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于: function 匿名类(){ return “圆心”; } var yx...

    flash与C#通信 CallFunction 出现COM组件错误的处理

    在进行Flash与C#之间的交互时,经常会遇到通过`CallFunction`方法调用C#端函数出现COM组件错误的情况,尤其是当返回值类型设置为`xml`时,容易出现`HRESULT E_FAIL`这类错误。本文将详细分析这一问题,并提供一种...

    关于eval 与new Function 到底该选哪个?

    在JavaScript编程中,`eval` 和 `new Function` 都被用来执行字符串化的JavaScript代码,但它们之间存在着一些重要的区别和使用场景上的考量。本文将深入探讨这两个函数的特性和性能差异,帮助开发者做出明智的选择...

    js中function函数的使用方法.docx

    var func = new Function('arg1', 'arg2', 'alert(arg1 + " : " + arg2)'); func('ooo', 'ppp'); // 弹出框显示 'ooo : ppp' ``` 这种方式可以动态创建并执行函数,但在生产环境中需谨慎使用,因为它可能存在安全...

    math function

    Namespace xFunction Public Class f Const NumList = "零壹贰叁肆伍陆柒捌玖" Const UnitList = "仟佰拾亿仟佰拾万仟佰拾元角分" Public Shared Sub StringList() Dim tmepList As New List(Of String) ...

    javascript使用eval或者new Function进行语法检查

    在没有专门的语法解析库的情况下,可以利用JavaScript自身提供的功能来进行简单的语法验证,如使用`eval()`或`new Function()`。 `eval()`方法是JavaScript中的一个函数,它能够将字符串作为JavaScript代码执行。在...

    聊聊new Function这个陌生面孔及函数作用域和函数执行顺序

    【标题】: "深入理解JavaScript中的new Function与函数作用域和执行顺序" 【描述】: 本文将探讨JavaScript中不常见的new Function构造函数的用法,以及函数的作用域和执行顺序这两个关键概念。通常,我们定义函数的...

    Bird-LS-2009-Measuring-function-duration-with-ftrace.pdf

    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使用.docx

    然而,在深入学习JavaScript的过程中,不少开发者对于语言内部的一些概念仍感困惑,比如Object与Function之间的关系及其如何影响`instanceof`运算符的结果。 #### 二、JavaScript对象体系结构概述 在JavaScript...

    JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结

    本文将深入探讨JS对象与JSON的互换、New Function构造函数、forEach方法以及DOM事件流等核心知识点,同时还会涉及JavaScript的数据类型、运算符、Memoization技术及闭包。 1. **数据类型**: JavaScript提供了七种...

Global site tag (gtag.js) - Google Analytics