function(){}与new function(){}的区别
difference between function() {} and new function() {}
在这个问题中,我不想问"Function",我想问"Function"难题
<script type="text/javascript">
var test = function() {
alert('a');
};
var test1 = new function() {
alert('b');
};
</script>
为什么会弹出"b"?
函数(p1, p2,…,pn,身体)
当使用一些参数p1, p2,…,pn, body(其中n可能为0,即没有" p "参数,并且也可能不提供body)调用Function函数时,将执行以下步骤:
创建并返回一个新的Function对象,就像在具有相同参数的新表达式中使用了标准内置构造函数Function一样。
check:Is JavaScript's "new"关键词被认为有害?
new function
将执行该函数,您也可以使用IIFE(立即调用的函数表达式):
var test1 = (function() {
alert('b');
}());
new
用于Javascript中的工厂模式。它通过执行构造函数创建并返回一个对象。在您的情况下,使用new
是没有意义的。
作为构造函数使用的函数不需要父类,如果你没有传递任何参数:
var Person = function () { this.is_alive = true; },
bob = new Person;
bob.is_alive;
…但是任何函数都可以作为构造函数调用,不管你是否使用返回的对象…
new function () { console.log("Bob"); }
这不会将函数保存在任何地方——它会立即在适当的地方运行它。
参见What is the 'new'关键字在JavaScript?查看新关键字的基本描述。
本质上,你是在调用一个新对象的构造函数。我示范给你看。
var Animal = function(name) {
alert("Animal Created: " + name);
}
jaguar = new Animal("Cool");
唯一的区别是在定义新对象的同一行声明函数:
jaguar = new function(name) {
alert("Animal Created: " + name);
}
相关文章:
- (typeof variable === “function”) 和 jQuery.isFunction() 有什么区别
- 对于IIFE void function()与(function()),使用void与在parens中换行之间的区别
- 绑定返回的结果和使用function()的结果之间有什么区别
- 什么's AngularJS中$scope.myScope=function()和function()之间的区别
- (function(){/*...*/})()有什么区别;和 (function($){/*...*/})(jQuery
- .click(function () { 和 javascript:myfunction() 有什么区别?
- 函数(){}.bind(this) 和 angular.bind(this, function() {}) 之间的区别
- JavaScript 中 Function.prototype 和 Object.prototype 之间的区别
- (function(window){}) 和 (function(){}) 之间的区别
- this.function 和 this.function() 之间的区别
- JavaScript 中的 void、eval 和 Function 构造函数有什么区别?
- alert(“Hi!”) 和 function(){alert(“Hi!”)} 之间的区别
- JavaScript Function()和JavaScript对象之间的区别
- var foo=function(){..}()和var foo=(function(){..}())之间的区别
- javascript中函数myName()和var myName=function()之间的区别
- on(“click”,function())和onclick=“”之间有什么区别;函数()&”;
- Function和Function.prototype之间的区别
- 构造函数的区别:var X = function (){}, var X = function X(){}和functi
- 带有多事件的$(function)与带有单事件的multi $(function)的区别
- $(callback)和$(document)之间的区别.ready(function)