Dojo 学习笔记–dojo模块引用 和上下文绑定

前端之家收集整理的这篇文章主要介绍了Dojo 学习笔记–dojo模块引用 和上下文绑定前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. dojo 的模块化

dojo 的模块化是指,dojo将每个冗杂的js代码有组织的分割开,划分为模块,需要该模块时,将其引入,即可使用,这个类似于在java代码里的 import 语句;

比如我们需要dojo.a.b 模块,只需要执行下面的语句:

require("dojo.a.b");  // 实际上这个是相当于加载dojo/a/b.js 文件

2dojo.hitch()

方法为指定的函数绑定上下文,并执行。

function printAge()
{ 
     console.log(age);
}
var girl = {
       age:20
}
var woman = {
      age:40
}

dojo.hitch(girl,printAge);      // 为printAge 绑定girl上下文,输出:20;
dojo.hitch(woman,printAge);      //为printAge 绑定woman 上下文 ,输出 40;

//dojo.hitch 的实质:
dojo.hitch(o,f); //o 是对象,f是函数
//等价于
function (){ return f.apply(o,arguments)};
function() { return f.call(o,.....) };

dojo.hitch跟空对象绑定的情况:

// dojo.global 是对全局对象空间的一个引用
//第一种形式
dojo.hitch(null,f);  //  f 是一个函数,等价于
dojo.hitch(f);  // 返回 f


//第二种形式
dojo.hitch(null,"f");  // 等价于
dojo.hitch("f");  //返回..
function() {return dojo.global[f].apply(dojo.global,arguments);}

dojo.hitch() 的一般语法:

dojo.hitch(context,functionName,arg1,arg2,arg3.......);
//等价于:
function(){
       return context,functionName.apply(
       context,[arg1,arg3....].concat(arguments)  
    );
};
};

猜你在找的Dojo相关文章