资讯专栏INFORMATION COLUMN

javascript中匿名函数调用的多种方法

Awbeci / 3093人阅读

摘要:目前,以下多种方式中,只能理解第一种和第二种,其他都不明白原理,各位大神能不能解释下方式,调用函数,得到返回值。强制运算符使函数调用执行方式,调用函数,得到返回值。

目前,以下多种方式中,只能理解第一种和第二种,其他都不明白原理,各位大神能不能解释下?

方式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

相关文章

  • 兼容多种模块规范(AMD,CMD,Node)代码

    摘要:主要区别是需要在声明模块时指定所有的依赖,通过形参传递依赖到模块内容中。 前言 昨天,公司同事问了我如下一个问题: showImg(https://segmentfault.com/img/bVWXYP?w=548&h=346); 说他在看一个插件时,看到了源码结构如截图所示,他知道(function(){})()是一种立即执行函数,但是在截图中,最后的那个圆括号里又写了一个函数fun...

    Shonim 评论0 收藏0
  • JavaScript函数学习笔记

    摘要:在中通过关键字方式调用的函数都被认为是构造函数。这个新创建的对象的被指向到构造函数的。上的方法不起效果当然你要是这样的形式指定了返回的内容,它自然会原样返回啦工厂模型为了不使用关键字,构造函数必须显式的返回一个值。 个人博客原址 函数 函数式一块javascript代码,定义一次,可以被多次调用与执行,JS中的函数也是对象,所以JS函数可以像其他对象那样操作,和传递,所以也称函数对象函...

    wua_wua2012 评论0 收藏0
  • 理解Javascript闭包

    摘要:但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。可惜的是,并没有提供相关的成员和方法来访问闭包中的局部变量。 (收藏自 技术狂) 前言:还是一篇入门文章。Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包 对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将...

    dayday_up 评论0 收藏0
  • AMD规范(转)

    摘要:可以看到,第三个参数是回调函数,可以直接使用依赖的模块,他们按依赖声明顺序作为参数提供给回调函数。结论规范是开发的一次重要尝试,它以简单而优雅的方式统一了的模块定义和加载机制,并迅速得到很多框架的认可和采纳。 1. AMD的由来  前端技术虽然在不断发展之中,却一直没有质的飞跃。除了已有的各大著名框架,比如Dojo,jQuery,ExtJs等等,很多公司也都有着自己的前端开发框架。这些...

    harriszh 评论0 收藏0
  • JAVASCRIPT FUNCTIONS

    摘要:在中,一个未使用明确标识符的函数被称为一个匿名函数。记住在中,由关键字声明的变量是一个局部变量,而忽略了这个关键字则会创建一个全局变量。函数被赋值给一个局部变量,在外部无法访问它。这个函数表达式的变种被称为一个命名的函数表达式。 本文是@堂主 对《Pro JavaScript with Mootools》一书的第二章函数部分知识点讲解的翻译。该书的作者 Mark Joseph Obce...

    Cympros 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<