如何理解JS匿名函数
发布时间:2025-05-25 08:12:26 发布人:远客网络
一、如何理解JS匿名函数
匿名函数的基本形式为(function(){...})();前面的括号包含函数体,后面的括号就是给匿名函数传递参数并立即执行之匿名函数的作用是避免全局变量的污染以及函数名的冲突。
小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。
简单来说就是小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值等于小括号的返回值
方式1,调用函数,得到返回值。强制运算符使函数调用执行
方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行
这种方式也是很多库爱用的调用方式,如jQuery,Mootools。
方式6,匿名函数执行放在中括号内
console.log(this)//浏览器得控制台输出window
console.log(this)//浏览器得控制台输出window
console.log(this)//浏览器得控制台输出window
console.log(this)//浏览器得控制台输出window
console.log(this)//这里的this就不是window了
匿名函数没有实际名字,也没有指针,怎么执行?
+号是让函数声明转换为函数表达式。汇总一下
想用匿名函数的链式调用?很简单:
})('water')('down');
常见的匿名函数都知道了,看看不常见的:
二、javascript匿名函数
Javascript是一avascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。所以,JavaScript被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。
JavaScript函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行。
1)函数由关键字function定义(也可由Function构造函数构造)
2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用
3)函数名是调用函数时引用的名称,它对大小写是敏感的,调用函数时不可写错函数名
4)参数表示传递给函数使用或操作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通过arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数
5)return语句用于返回表达式的值。
6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。
三、这段js代码什么意思
1、首先注意看:var _hmt= _hmt|| [];这个变量 _hmt在下面的代码没用被引用,所以是无效代码!
2、(function(){实际代码})()这种代码方式叫做定义一个匿名函数并返回成变量,然后马上执行
3、基于你给的代码,这种方式目前看不出用途,实际真正有用的代码是:
4、var hm= document.createElement("script");
5、hm.src="";
6、//获取网页中第一个 script脚本,定义成变量 s
7、var s= document.getElementsByTagName("script")[0];
8、//找到 s的父节点,在这个父节点中插入元素 hm,并在s之前
9、s.parentNode.insertBefore(hm, s);
10、最终这段代码的意思就是动态创建了一个 script脚本并设定下载网址放在网页script标签的最上面
11、代码的用途就不清楚,得你根据实际意义看分析