dojo之理解dojo.hitch及数组方法

dojo.hitch: 当调用对象方法时,给他添加一个上下文对象,即this指向的obj。

1、一般传两个参数,第一个是上下文参数,第二个是函数或对象的方法,如果没有第一个参数,则默认为全局

如:

function showData(){
   var x= this.getData();
   dojo.byId("showData").innerHTML = "The result " + x;
}


var dataSrc1 = {
  value:0,
  getData:function(){return this.value++;}
};
var dataSrc2 = {
  value:0,
  getData:function(){return this.value++;}
};


dojo.byId("f3").onclick = dojo.hitch(dataSrc1,showData);
dojo.byId("f4").onclick = dojo.hitch(dataSrc1,showData);

2、用hitch绑定参数时必须要指定上下文和函数,在当前域中时,要给上下文指定参数 null

如: dojo.byId("someId").click=function(){handler(someArg);}

等同于    dojo.byId("someId").click=dojo.hitch(null,handler,someArg);

等同于    dojo.byId("someId").click=dojo.partial(handler,someArg);

function print3Args = (a1,a2,a3){

alert(a1+a2+a3);

}

用dojo.hitch绑定2个参数

var printArg = dojo.hitch(null,print3Args ,"this","is");

printArg(easy);

输出:this is easy


数组方法:

例:循环控制语句,利用dojo消除重复代码

dojo.indexOf: 返回数组中首次匹配元素的位置,没有找到返回-1.

dojo.lastIndexOf: 返回数组中最后一次匹配元素的位置,没有找到返回-1.

dojo.every: 测试是否数组中所有元素都返回测试函数,返回true或者False.

dojo.some:测试数组中是否有元素返回测试函数,返回true或者False.

dojo.filter: 创建一个数组中所有通过过滤函数的元素组成的新数组。

dojo.map: 返回对数组中所有元素依次调用一个函数得到的返回值构成的新数组。

dojo.forEach: 将数组中每一个元素传给一个函数。

上述函数都具有相同的签名:(a,f,context)

a:代表一个数组    f:回调函数   context:表示执行f的上下文(可选)

回调函数也有相同的签名:(item,index,array)

item:当前迭代中的数组元素

例如:var acumulator = {"total",0};

            var src=[1,2,3,4,5];

            dojo.forEach(src,"this.total+=item;",acumulator);

           


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值