这是jQuery代码吗?
(function(jQuery){
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
相当于
$(document).ready(function () {
});
Run Code Online (Sandbox Code Playgroud)
如果是,两者之间有什么区别?如果没有,第一个做什么?
编辑:
谢谢大家.大多数反应与不同的口味和样品相似
只是想知道它是否是一个很好的JavaScript实践.
假设我有许多网页都调用了初始化函数"init()",在我的模式中使用IIFE在每次加载脚本时运行函数是否正确?
var foo = (function() {
var bar = "something";
(function init() {
// Do something crazy that's gonna be the same across all my web pages
// like adding an event listener or something
// ...
document.write('page init...');
}());
function privatePage1() {
// This stuff is gonna be used only in page1.html via foo.privatePage1
document.write('page 1' + bar);
}
function privatePage2() {
// This stuff is gonna be used only in page2.html via foo.privatePage2
document.write('page 2' …Run Code Online (Sandbox Code Playgroud) 我一直看到这样的代码:
(function(){
//code here
})();
Run Code Online (Sandbox Code Playgroud)
这段代码是如何工作的?哪个函数接收哪些参数?
(function(factory){
//code here
}(function($){
//other code here
}));
Run Code Online (Sandbox Code Playgroud) 如果我创建一个简单的TypeScript module命名test,它将类似于以下内容:
module test
{
export class MyTest {
name = "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
结果将JavaScript创建一个IIFE类似于以下内容的:
var test;
(function (test) {
var MyTest = (function () {
function MyTest() {
this.name = "hello";
}
return MyTest;
})();
test.MyTest = MyTest;
})(test || (test = {}));
Run Code Online (Sandbox Code Playgroud)
我不明白是什么是底了以下行的目的IIFE,它包含的参数为function:
(test || (test = {}));
Run Code Online (Sandbox Code Playgroud)
结果函数还接受参数test:
(function (test) {
Run Code Online (Sandbox Code Playgroud)
我理解使用参数传递jQuery诸如' object like之类})(jquery);的结果时,结果函数可以采用like这样的别名(function ($) {。但是,我只是没有看到(test …
我有以下逻辑:
var first_function = (function(d3, second_function) {
function third_function(param1, param2) {
/* do stuff here */
}
})(d3, second_function);
Run Code Online (Sandbox Code Playgroud)
在IIFE结构之外,为了访问第三个函数,我通常可以这样做:
first_function.third_function(data1, data2);
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
为什么下面的代码结果的记录b,同时a还是undefined?
(function(){ var a=b=5; })();
console.log('b:'+b);
console.log('a:'+a);
Run Code Online (Sandbox Code Playgroud) 关于总结问题的标题 - 这是代码示例:
!function() {
console.log(this); // global object
}();
(function() {
console.log(this); // global object
})();
() => {
console.log(this); // {}
}();
var x = (function() {
console.log(this); // global object
})();
Run Code Online (Sandbox Code Playgroud)
箭头功能背后发生了什么?如果我想在ES5中使用该范围,据我所知,我必须将执行绑定到一个空对象,如下所示:
!function() {
console.log(this); // global object
}.bind({})();
Run Code Online (Sandbox Code Playgroud) 在一篇关于浏览器插件开发的文章中,他们使用以下代码:
window.browser = (function () {
return window.msBrowser ||
window.browser ||
window.chrome;
})();
Run Code Online (Sandbox Code Playgroud)
为什么他们会使用IIFE,而不是说:
window.browser = window.msBrowser || window.browser || window.chrome;
Run Code Online (Sandbox Code Playgroud)
是否有一些IIFE带给我的桌子,我正在俯瞰?
运行简单的脚本。出错了。
const fetch = require("node-fetch")
const url = "https://www.someurl.com"
(async ()=>{
const response = await fetch(url)
const data = await response
console.log(data)
})()
Run Code Online (Sandbox Code Playgroud)
错误
$ node api.js TypeError:require(...)(...)不是一个函数
我在这里想念什么?谢谢。
我无法理解为什么函数表达式调用不起作用并抛出错误.
你能解释一下吗?
var a = function (x) {
alert(x)
}
(function() {
a(1);
}());
Run Code Online (Sandbox Code Playgroud)
谢谢大家
这项任务比我想象的容易得多
iife ×10
javascript ×9
closures ×1
ecmascript-6 ×1
function ×1
jquery ×1
logic ×1
node.js ×1
typescript ×1