当前位置 : 主页 > 网页制作 > Dojo >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
1. dojo 的模块化 dojo 的模块化是指,dojo将每个冗杂的js代码有组织的分割开,划分为模块,需要该模块时,将其引入,即可使用,这个类似于在java代码里的 import 语句; 比如我们需要

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)  
    );
};
};
网友评论