javascript(function(){}())中使用的这种语法在哪里
在这里,人被分配了一些东西作为javascript(function(){}())中使用的这种语法在哪里,javascript,node.js,Javascript,Node.js,在这里,人被分配了一些东西作为(function(){}())语法,这个语法是关于什么的,它在做什么,请有人解释一下。。。 我在某处看到了这段代码,但我无法理解函数语法(function(){}())后面的括号来自何处以及它们在做什么 删除第二组括号后,它将停止作为构造函数的行为,为什么第一个()将其声明为函数?如果有参数传入,这就是传递参数的地方 {}是声明逻辑的地方 第二个()在定义函数后立即调用该函数,而不是从其他地方调用该函数。可能是重复的这是一个自调用函数。你可以在谷歌上找到数百篇关于
(function(){}())
语法,这个语法是关于什么的,它在做什么,请有人解释一下。。。
我在某处看到了这段代码,但我无法理解函数语法(function(){}())后面的括号来自何处以及它们在做什么
删除第二组括号后,它将停止作为构造函数的行为,为什么第一个()
将其声明为函数?如果有参数传入,这就是传递参数的地方
{}
是声明逻辑的地方
第二个
()
在定义函数后立即调用该函数,而不是从其他地方调用该函数。可能是重复的这是一个自调用函数。你可以在谷歌上找到数百篇关于它的文章,一些评论和回答都是在重复状态,标准名称是“立即调用函数表达式”(或IIFE);它甚至有自己的标签:好的,现在我知道了,你能回答另一个问题吗,即:当我删除第二个()
括号时,它就不再是构造函数了,为什么…@AyushAgrawal第一个()
是定义,第二个()
是初始化。必须初始化/执行该函数才能使内部逻辑正常工作。@AyusAgrawal如果您将其称为Person()
,则无需第二个括号即可正常工作。有关演示,请参阅。var Person=function(){
`function Person(name){``this.name=name;`}
Person.prototype.getName=function(){
`return this.name;``};`console.log(“调用的”)
`return Person;`>代码>var p=新人(“约翰”)代码>console.log('person1 name:'+p.getName())代码>@JamesWhiteley在这段代码中,如果我删除第二个()它就不再是构造函数了
var Person = function() {
function Person(name) {
this.name = name;
}
Person.prototype.getName = function() {
return this.name;
};
console.log("called")
return Person;
}();
var p = new Person('John');
console.log('Person 1 name: ' + p.getName());