我的javascript 函数链之演变_javascript技巧

最易读版

复制代码 代码如下:

function chain(obj){
function fun(){
if (arguments.length == 0){
return fun.obj;
}
var methodName = arguments[0], methodArgs = [].slice.call(arguments,1);
fun.obj[methodName].apply(fun.obj,methodArgs);
return fun;
}
fun.obj = obj;
return fun;
}

易读版

复制代码 代码如下:

function chain(obj){
return function(){
var Self = arguments.callee; Self.obj = obj;
if(arguments.length==0){
return Self.obj;
}
var methodName = arguments[0], methodArgs = [].slice.call(arguments,1);
Self.obj[methodName].apply(Self.obj,methodArgs);
return Self;
}
}

精简版

复制代码 代码如下:

function chain(obj){
return function(){
var Self = arguments.callee; Self.obj = obj;
if(arguments.length==0){
return Self.obj;
}
Self.obj[arguments[0]].apply(Self.obj,[].slice.call(arguments,1));
return Self;
}
}

调用

复制代码 代码如下:

chain(obj)
(method1,arg1)
(method2,arg2)
(method3,arg3)
...

时间: 2024-09-17 06:23:32

我的javascript 函数链之演变_javascript技巧的相关文章

详解javascript函数的参数_javascript技巧

javascript函数可以用任意多个参数来调用,而不用管函数定义时指定了几个参数.因为函数是弱类型的,没有方法去声明它所期望的参数类型,并且给任何函数传递任何类型的值都是合法的. 1.Js函数可以传入不同的参数,如 function writeNString(strMsg){ document.write(strMsg + "<br>"); } 2.Js函数返回值,js函数可以将运行的结果返回,函数可以视为一个黑盒子,使用参数输入数据后产生所需的运行结果,如 functi

JavaScript函数作用域链分析_javascript技巧

本文实例分析了JavaScript函数作用域链.分享给大家供大家参考.具体分析如下: 作用域链: JavaScript的每个函数function都有自己的作用域,使用Active Object(简称AO)活动对象来保存,在相互嵌套的函数中形成了作用域链,如下图所示: 作用域链就是从里到外的AO链 变量的寻找: 函数fn3中使用的变量,如在fn3作用域内寻找不到,则往外层fn2作用域寻找,以此类推,直到全局对象window 代码演示如下: var c = 5; function t1(){ var

整理Javascript函数学习笔记_javascript技巧

1.什么是函数 如果需要多次使用同一段代码,可以把它们封装成一个函数.函数(function)就是一组允许在你的代码里随时调用的语句.每个函数实际上是一个短小的脚本. 如:要完成多组数和的功能. var sum; sum = 3+2; alear(sum); sum = 7+8; alear(sum); ......//不停的重复两行代码 如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多.所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码

深入理解JavaScript函数参数(推荐)_javascript技巧

前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascript中的函数定义并未指定函数形参的类型,函数调用也未对传入的实参值做任何类型检查.实际上,javascript函数调用甚至不检查传入形参的个数 function add(x){ return x+1; } console.log(add(1));//2 console.log(add('1'));/

Javascript函数的参数_javascript技巧

 本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘 函数的参数                      对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数.             对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉. //调用函数时传入的实际参数 function add(num1, num2) { return num1 + num2; } //一切正常的调用方式 console.info(add(1

JavaScript函数详解_javascript技巧

1.函数定义  函数包含一组语句,它们是javascript的基础模块单元,用于代码复用.信息隐藏和组合调用.函数用于指定对象的行为 2.函数的四种调用模式及this的初始化 第一种:方法调用模式     以下事例证明通过方法调用模式调用时,this绑定到拥有该方法的对象.如: 复制代码 代码如下: var person = {     name: "defaultName",     setName : function(name){         this.name = name

js 通用javascript函数库整理_javascript技巧

复制代码 代码如下: /* * 包含jquery-1.3.2.min.js */ document.write("<script language='javascript' src='js/jquery-1.3.2.min.js'></script>"); /* * 公共参数 */ var hostUrl='http://'+window.location.host; //获取网站主机头 /* * 水平居中left值 */ function HorCenter(

javascript的函数劫持浅析_javascript技巧

javascript的函数劫持是什么? 函数劫持,顾名思义,即在一个函数运行之前把它劫持下来,添加我们想要的功能.当这个函数实际运行的时候,它已经不是原本的函数了,而是带上了被我们添加上去的功能.这也是我们常见的钩子函数的原理之一. 乍一看上去,这很像是函数的改写.函数的改写也可以理解为是函数劫持的一种,但是这种方式太恶心了.作为一个劫持者,在绑票获得好处以后也应该遵守职业道德,把人原封不动地还回去,所以我们得在合适的地方把函数原本的功能给重新调用回来. 推而广之,其实"劫持"这一概念

JavaScript中5种调用函数的方法_javascript技巧

这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! JavaScript,调用函数的5种方法 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性, 当我们选择面对它的时候,这将成为我们前进的阻碍. 作为初学者,我们来测试五种函数调用的方法,从表面来看我们会认为那些函数与C#中函数的