iife相关内容
下面我们有一个 IIFE(像任何函数)创建一个局部作用域.在该范围内有一个 parseInt 函数.现在,由于浏览器中已经有一个具有该名称的全局函数,本地函数将掩盖全局 parseInt 函数 - 在 IIFE 中,任何对 parseInt 的调用都将调用局部函数,而不是全局函数.(全局函数仍然可以用 window.parseInt 引用.) parseInt('123', 10);//调用浏览
..
我最近阅读了很多 Javascript,我注意到整个文件在要导入的 .js 文件中如下所示. (function() {...代码...})(); 这样做而不是一组简单的构造函数的原因是什么? 解决方案 通常是为了命名空间(见下文)并控制成员函数和/或变量的可见性.把它想象成一个对象定义.它的技术名称是立即调用函数表达式 (IIFE).jQuery 插件通常是这样写的. 在 Ja
..
以下打字稿: enum PrimaryColors { Red, Green, Blue }; 生成以下 JavaScript: var PrimaryColors;(功能(原色){PrimaryColors[PrimaryColors["Red"] = 0] = "Red";PrimaryColors[PrimaryColors["Green"] = 1] = "Green";Primar
..
JavaScript 中模块的两个声明有什么不同?一个在函数周围有括号,另一个没有? 一篇文章说 注意匿名函数周围的 ().这是国务院要求的语言,因为以标记函数开头的语句是总是被认为是函数声明.包括 () 创建一个代替函数表达式. 两者在检查时似乎都在做同样的事情. var person = (function() {//私人的var name = "罗伯特";返回 {获取名称
..
查看 todomvc 主干代码示例.js/折叠中的结构: ├── app.js├── 藏品│ └── todos.js├── 模型│ └── todo.js├── 路由器│ └── router.js└── 浏览量├── app-view.js└── todo-view.js app.js var app = app ||{};$(函数(){'使用严格';//通过创建`App`开始新 app
..
可能的重复: 感叹号在函数前有什么作用? 我长期以来一直将以下代码用于 JavaScript 中的自执行匿名函数: (function () {/* 魔法发生 */})() 最近,我开始看到更多以下模式的实例(例如,在 引导程序): !function () {/* 大概发生了同样的魔法 */}() 有谁知道第二种模式的优点是什么?或者,这只是一种风格偏好? 解决方案 这两
..
当您将 JavaScript 代码包装在这样的函数中时: (function(){var 字段 = ...;函数 doSomthing(){......})(); 我注意到这为我解决了很多网页上的范围界定问题.这种做法叫什么? 解决方案 该模式称为自调用,一个自调用函数.它可以创建一个闭包,但这是模式的效果(也许是预期的效果),而不是模式本身.
..
可能的重复: JavaScript 中的 (function() { } )() 构造是什么? 我遇到了这段 JavaScript 代码,但我不知道该怎么做.为什么运行此代码时会得到“1"?(1)的这个奇怪的小附录是什么,为什么函数用括号括起来? (函数(x){删除 x;返回 x;})(1); 解决方案 这里有一些事情要做.首先是立即调用函数表达式 (IIFE) 模式: (func
..
我一直在寻找有关立即调用函数的信息,并且在某处偶然发现了这个符号: +function(){console.log("Something.")}() 有人可以向我解释一下函数前面的 + 符号是什么意思吗? 解决方案 它强制解析器将 + 后面的部分视为表达式.这通常用于立即调用的函数,例如: +function() { console.log("Foo!");}(); 如果没有 +
..
在查看一些用 Twitter Bootstrap Javascript 编写的代码时,看起来他们正在调用这样的立即调用的匿名函数: !function( $ ) {...}(window.jQuery || window.ender); 传统上我看到同样的事情是通过这种方式完成的: (function($) {...})(window.jQuery || window.ender); 第一
..
我曾经知道这是什么意思,但我现在很挣扎... 这基本上是在说 document.onload 吗? (函数(){})(); 解决方案 这是一个 立即调用的函数表达式,或IIFE 简称.它在创建后立即执行. 它与任何事件的任何事件处理程序无关(例如 document.onload). 考虑第一对括号内的部分:(function(){})();....它是一个正则函数表达式.再看最
..
我看到很多类似的代码: var myApp ={};(功能() {console.log("你好");this.var1 = "标记";//"this" 是全局的,因为它在加载时立即运行.呼叫者是全球性的myApp.sayGoodbye = function() {console.log("再见");};})(); 这会导致匿名函数立即执行.但是,与仅将代码内联相比,这样做的优势是什么? v
..
我看到很多这样的代码: var myApp ={};(功能() {console.log("你好");this.var1 = "标记";//"this" 是全局的,因为它在加载时立即运行.呼叫者是全球性的myApp.sayGoodbye = function() {console.log("再见");};})(); 这会导致匿名函数立即执行.但是,与仅将代码内联相比,这样做的优势是什么? v
..
这两者有什么区别: $(function () {//做东西}); 和 (函数(){//做东西})(); 解决方案 第一个使用 jQuery 将函数绑定到 document.ready 事件.第二个声明并立即执行一个函数.
..
我正在阅读一些关于闭包的帖子,到处都看到了这个,但没有明确的解释它是如何工作的 - 每次我都被告知要使用它......: //创建一个新的匿名函数,用作包装器(功能(){//通常是全局的变量var msg = "感谢访问!";//将一个新函数绑定到一个全局对象window.onunload = 函数(){//使用“隐藏"变量警报(味精);};//关闭匿名函数并执行})(); 好的,我知道我们将
..
我最近比较了 json2.js 与我在项目中使用的版本相比,我注意到函数表达式的创建和自执行方式有所不同. 用于将匿名函数包裹在括号中然后执行的代码, (函数(){//代码在这里})(); 但现在它将自动执行的函数包装在括号中. (函数(){//代码在这里}()); 在解释JavaScript的封装匿名函数语法的接受答案中,CMS有一条评论 表明“(function(){})();
..
在下面的代码中, var myObject = {foo: "酒吧",功能:函数(){var self = this;console.log("外部函数:this.foo = " + this.foo);console.log("外部函数:self.foo = " + self.foo);(功能() {console.log("内部函数:this.foo = " + this.foo);cons
..
我承认我对 JavaScript 很陌生,但每次我认为我得到它时,一些奇怪的曲线球让我立刻离开,这无济于事. 我有一个类似这样的 js 文件: (function (myiife, $) {var myArrayOfThings = [];myiife.myFunction = 函数 (id) {var cachedThing = myiife.getFromArray(id);if (c
..
有时候我看到了: (function(){alert("hi");})(); 有时我会看到: (function(){alert("hi");}()); 请注意函数对象的结束括号的位置. 有什么区别?我不知道.出于任何原因都可以选择吗? 编辑: 此外,这不起作用: function(){alert("hi");}(); 这似乎很奇怪,因为如果用括号括起来,它是
..
首先,是一个伪代码示例: ;(function(foo){foo.init = function(baz){...}foo.other = function(){...}返回foo;}(window.FOO = window.FOO || {})); 这样称呼: FOO.init(); 我的问题: window.FOO = window.FOO ||的技术名称/描述是什么?{}
..