什么'新函数和函数之间的区别
What's the difference between new Function and Function
使用new Function
而不是简单的Function
的代码非常常见。我想了解为什么,new
操作符到底在做什么。
这两者有什么区别?
var y = new Function("a", "alert(a)")
var x = Function("a", "alert(a)")
来自文档:
Function
构造函数创建一个新的Function
对象。在JavaScript中,每个函数实际上都是一个Function
对象。将
Function
构造函数作为函数调用(不使用新运算符)与将其作为构造函数调用具有相同的效果。
由于函数实际上是Javascript中的对象,因此可以通过标准调用语法和new
运算符(在本例中实例化Function
类型的新对象)来调用它们。
我从文档中引用的最后一行是说,执行Function()
与调用new Function()
完全相同。
tl;dr
没有区别。
不同之处在于,当您使用新关键字调用函数时,它会为您的函数创建一个新的"this"空对象,您可以在函数内部设置该对象的属性。此外,如果不返回其他内容,则new
调用函数的返回值将为this
。
没有新的关键字,就没有新的空"this"对象,所以如果你在里面使用它,它会出错。
您可能根本没有在函数中使用this
,因此您可能看不到任何差异。
p.s.:一个问题可能是,如果你使用this
,并且你在没有new
kw的情况下调用。这将是fn中的全局this。-并且在将成为CCD_ 17对象的浏览器环境中。。。所以你将在上面设置道具,而不是在一个新的空对象上。
相关文章:
- JavaScript中的函数和对象之间没有区别吗?
- javascript函数的:和=之间的区别
- 函数中this和var之间的区别
- 使用大括号和不使用bracs调用函数的区别
- 缓存!saveLocations()和addLocation()函数有什么区别
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 函数()和新函数()之间的区别
- 直接绑定和使用每个函数之间的区别
- 两者之间有什么区别..函数中的参数和参数
- 调用函数和回调函数有什么区别
- JS构造函数的原型属性与其原型之间的区别
- 在函数内赋予价值和在函数外赋予价值有什么区别
- js 函数之间使用参数的区别
- 在 JavaScript 中的对象内分配柯里函数时,这和 self 之间有什么区别吗?
- 这些函数类型之间有什么区别
- javascript onchange中的代码和函数中的相同代码有什么区别
- 向构造函数或原型添加属性之间的区别
- 什么's调用函数和传递函数的区别
- jQuery递归函数调用和Javascript之间有区别吗;s setInterval
- 试图理解JavaScript中原型和构造函数之间的区别