摘要:目前,以下多种方式中,只能理解第一种和第二种,其他都不明白原理,各位大神能不能解释下方式,调用函数,得到返回值。强制运算符使函数调用执行方式,调用函数,得到返回值。
目前,以下多种方式中,只能理解第一种和第二种,其他都不明白原理,各位大神能不能解释下?
方式1,调用函数,得到返回值。强制运算符使函数调用执行
javascript(function(x,y){ alert(x+y); return x+y; }(3,4));
方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行
javascript(function(x,y){ alert(x+y); return x+y; })(3,4);
这种方式也是很多库爱用的调用方式,如jQuery,Mootools。
方式3,使用void
javascriptvoid function(x) { x = x-1; alert(x); }(9);
方式4,使用-/+运算符
javascript-function(x,y){ alert(x+y); return x+y; }(3,4); +function(x,y){ alert(x+y); return x+y; }(3,4); --function(x,y){ alert(x+y); return x+y; }(3,4); ++function(x,y){ alert(x+y); return x+y; }(3,4);
方式5,使用波浪符(~)
javascript~function(x, y) { alert(x+y); return x+y; }(3, 4);
方式6,匿名函数执行放在中括号内
javascript[function(){ console.log(this) // 浏览器得控制台输出window }(this)]
方式7,匿名函数前加typeof
javascripttypeof function(){ console.log(this) // 浏览器得控制台输出window }(this)
方式8,匿名函数前加delete
javascriptdelete function(){ console.log(this) // 浏览器得控制台输出window }(this)
方式9,匿名函数前加void
javascriptvoid function(){ console.log(this) // 浏览器得控制台输出window }(this)
方式10,使用new方式,传参
javascriptnew function(win){ console.log(win) // window }(this)
方式11,使用new,不传参
javascriptnew function(){ console.log(this) // 这里的this就不是window了 }
方式12,逗号运算符
javascript1, function(){ console.log(this) // window }();
方式13,按位异或运算符
javascript1^function(){ console.log(this) // window }();
方式14,比较运算符
javascript1>function(){ console.log(this) // window }();
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87585.html
摘要:主要区别是需要在声明模块时指定所有的依赖,通过形参传递依赖到模块内容中。 前言 昨天,公司同事问了我如下一个问题: showImg(https://segmentfault.com/img/bVWXYP?w=548&h=346); 说他在看一个插件时,看到了源码结构如截图所示,他知道(function(){})()是一种立即执行函数,但是在截图中,最后的那个圆括号里又写了一个函数fun...
摘要:在中通过关键字方式调用的函数都被认为是构造函数。这个新创建的对象的被指向到构造函数的。上的方法不起效果当然你要是这样的形式指定了返回的内容,它自然会原样返回啦工厂模型为了不使用关键字,构造函数必须显式的返回一个值。 个人博客原址 函数 函数式一块javascript代码,定义一次,可以被多次调用与执行,JS中的函数也是对象,所以JS函数可以像其他对象那样操作,和传递,所以也称函数对象函...
摘要:但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。可惜的是,并没有提供相关的成员和方法来访问闭包中的局部变量。 (收藏自 技术狂) 前言:还是一篇入门文章。Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包 对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将...
摘要:在中,一个未使用明确标识符的函数被称为一个匿名函数。记住在中,由关键字声明的变量是一个局部变量,而忽略了这个关键字则会创建一个全局变量。函数被赋值给一个局部变量,在外部无法访问它。这个函数表达式的变种被称为一个命名的函数表达式。 本文是@堂主 对《Pro JavaScript with Mootools》一书的第二章函数部分知识点讲解的翻译。该书的作者 Mark Joseph Obce...
阅读 2058·2021-09-22 10:56
阅读 1353·2021-09-07 10:11
阅读 1772·2019-08-30 15:54
阅读 2264·2019-08-30 15:44
阅读 2285·2019-08-29 12:40
阅读 3000·2019-08-28 18:25
阅读 1701·2019-08-26 10:24
阅读 3157·2019-08-23 18:39