js 中定义函数的方式有很多种,函数直接量就是其中一种,下面通过本文给大家介绍匿名函数是如何调用的及匿名函数的 n 中写法,对 js 匿名函数调用,js 匿名函数写法相关知识感兴趣的朋友一起学习吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
Javascript 中定义函数的方式有多种,函数直接量就是其中一种。如 var fun = function(){}, 这里 function 如果不赋值给 fun 那么它就是一个匿名函数。好,看看匿名函数的如何被调用。
方式 1,调用函数,得到返回值。强制运算符使函数调用执行
- (function(x,y){
- alert(x+y);
- return x+y;
- }(3,4));
方式 2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行
- (function(x,y){
- alert(x+y);
- return x+y;
- })(3,4);
这种方式也是很多库爱用的调用方式,如 jQuery,Mootools。
方式 3,使用 void
- void
- function(x) {
- x = x - 1;
- alert(x);
- } (9);
方式 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); ++
- function(x, y) {
- alert(x + y);
- return x + y;
- } (3, 4);
方式 5,使用波浪符 (~)
- ~
- function(x, y) {
- alert(x + y);
- return x + y;
- } (3, 4);
方式 6,匿名函数执行放在中括号内
- [function(){
- console.log(this) // 浏览器得控制台输出window
- }(this)]
方式 7,匿名函数前加 typeof
- typeof
- function() {
- console.log(this) // 浏览器得控制台输出window
- } (this)
方式 8,匿名函数前加 delete
- delete
- function() {
- console.log(this) // 浏览器得控制台输出window
- } (this)
方式 9,匿名函数前加 void
- void
- function() {
- console.log(this) // 浏览器得控制台输出window
- } (this)
方式 10,使用 new 方式,传参
- new
- function(win) {
- console.log(win) // window
- } (this)
方式 11,使用 new,不传参
- new
- function() {
- console.log(this) // 这里的this就不是window了
- }
方式 12,逗号运算符
- function(){
- console.log(this) // window
- }();
方式 13,按位异或运算符
- ^
- function() {
- console.log(this) // window
- } ();
方式 14,比较运算符
- function(){
- console.log(this) // window
- }();
最后看看错误的调用方式
- function(x,y){
- alert(x+y);
- return x+y;
- }(3,4);
匿名函数的 N 种写法如下所示
匿名函数没有实际名字,也没有指针,怎么执行?
关于匿名函数写法,很发散~
+ 号是让函数声明转换为函数表达式。汇总一下
最常见的用法:
代码如下:
- (function() {
- alert('water');
- })();
当然也可以带参数:
代码如下:
- (function(o) {
- alert(o);
- })('water');
想用匿名函数的链式调用?很简单:
代码如下:
- (function(o) {
- console.log(o);
- return arguments.callee;
- })('water')('down');
常见的匿名函数都知道了,看看不常见的:
代码如下:
- ~ (function() {
- alert('water');
- })(); //写法有点酷~
代码如下:
- void
- function() {
- alert('water');
- } (); //据说效率最高~
代码如下:
- +
- function() {
- alert('water');
- } ();
代码如下:
- -
- function() {
- alert('water');
- } ();
代码如下:
- ~
- function() {
- alert('water');
- } ();
代码如下:
- !
- function() {
- alert('water');
- } ();
代码如下:
- (function() {
- alert('water');
- } ()); //有点强制执行的味道~
以上给大家分享了 Javascript 中匿名函数的调用与写法,希望对大家有所帮助。
来源: