这是什么代码在Javascript中?
问题描述:
在某些JS代码一些网站上我看到的Javascript代码,例如这样的:这是什么代码在Javascript中?
SomeName.init = (function() {
// some stuff
})();
我的意思是,这是不是像这样一个jQuery插件代码:
(function($){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};
})(jQuery);
那么,什么是它?什么是结果JS对象?
答
这是一个匿名函数,它在使用var
声明变量时不会将变量泄漏到全局范围。
SomeName.init = (function() {
return 3.1415;
})();
SomeName.init
是一个数字(3.1415),因为匿名函数声明执行函数()
之后。有没有办法来获得原有的功能,除非该匿名函数中定义:
(function foo(){
//foo refers to this function
too = foo;
})();;
//foo is undefined
//too refers to the function, because `too` has been defined without var
答
无论函数返回什么。
(function() {
//...
})();
用作名称空间代码的一种方式,或者声明自我执行的构造函数。结果对象是自执行函数返回的内容。
第二个代码段不返回任何内容,并且没有resulting JS object
。
答
(function() {
// some stuff
})()
是一个匿名函数,它立即调用它自己。这只是一个关闭代码的闭包,用于阻止变量作用域变为全局变量。
我......不知道你在问什么。这两个片段都演示了一个既被声明又被执行的函数。除此之外,他们似乎没有关系。 –
第一个将匿名函数的结果设置为名为“init”的变量。如第二个例子所示,匿名函数是创建PLUG-IN(或模块)时经常使用的设计模式,因此通常称为“模块模式”。 –
[这是我发现](http://*.com/questions/5101638/what-does-this-javascript-code-mean)当我在搜索框中输入你的标题。 – user113716