1. dojo 的模块化
dojo 的模块化是指,dojo将每个冗杂的js代码有组织的分割开,划分为模块,需要该模块时,将其引入,即可使用,这个类似于在java代码里的 import 语句;
比如我们需要dojo.a.b 模块,只需要执行下面的语句:
require("dojo.a.b"); // 实际上这个是相当于加载dojo/a/b.js 文件
2、dojo.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) ); }; };