博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js链式调用
阅读量:5313 次
发布时间:2019-06-14

本文共 1029 字,大约阅读时间需要 3 分钟。

我们都很熟悉jQuery了,只能jQuery中一种非常牛逼的写法叫链式操作

* $('#div').css('background','#ccc').removeClass('box').stop().animate({width:300})

那这是如何实现的呢,我自己写了个例子:并非jQuery源码

Ferrinte.prototype.show=function () {    for(var i=0;i

其实很简单就是通过return this实现的,当某个函数执行完毕,在把执行的结果返回,这样其他的函数就能继续调用了


原生js也是支持链式调用的,比如说:

var arr = [1,2,3,4,5];    arr.reverse().join("").split();    console.log(arr);

在原生js中,链式调用还可以这样用

function show(str) {        console.log(str);        return show;    }    show(123)(456)(789);// 控制台打印结果// 123// 456// 789

我们发现,不写函数名称只写()也可以实现函数执行,那我们这样写可以不可以呢

function show(str) {        console.log(str);        return show;    }(123)

原则上是可以的,但是这样不符合js语法,会报错

我们给函数外加上括号

(function show(str) {        console.log(str);        return show;    })(123)

这样就OK了,一个自执行的函数

但是这样写在严格模式下回报错,我们把函数赋值给一个变量就好了

var a = (function show(str) {        console.log(str);        return show;    })(123)

*注意:自执行函数不会被内存机制回收

作者:ferrint
链接:http://www.jianshu.com/p/a84093c9c144
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/superAnny/p/7614253.html

你可能感兴趣的文章
计算机经典书箱
查看>>
随机给出三十道四则运算题目
查看>>
pm_bout_1/2_on_subway
查看>>
linux下安装配置DHCP服务器
查看>>
【东软实训】SQL多表链接
查看>>
内存管理
查看>>
Fragment使用--文章集锦
查看>>
判断素数
查看>>
[USACO17JAN]Promotion Counting 题解
查看>>
依赖注入之针对不同类型变量的几种注入方式
查看>>
使用myeclipse建立maven项目(重要)
查看>>
ASP.NET登录以及注册
查看>>
02 jmeter 简单发送http请求
查看>>
centos安装禅道的步骤
查看>>
idea用法
查看>>
Sharepoint Designer 2007 Workflow
查看>>
项目共享协调机制
查看>>
diff和patch工具使用(转)
查看>>
【agc004f】Namori Grundy
查看>>
算法61---两个字符串的最小ASCII删除和【动态规划】
查看>>