您的位置:首页 > 其它

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

2013-11-02 23:19 155 查看
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,arg2,arg3....].concat(arguments)
);
};
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: