dojo框架用hitch实现函数与上下文的绑定

dojo框架:http://dojotoolkit.org/

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>dojo框架绑定函数与上下文</title>
    <script  src = "dojo/dojo/dojo.js"  ></script>
</head>
<body>

<script>

    require(["dojo/_base/lang"], function(lang){
        var theAccumulator = {
            total: 0,
            clear: function () {
            },
            clear: function () {
                this.total = 0;
            },
            add: function (x) {
                this.total += x;
            },
            getResult: function () {
                return this.total;
            }
        };
        theAccumulator.clear();
        theAccumulator.add(1);
        theAccumulator.add(2);

        function printResult(func) {
            console.log(func());
        }
        printResult(lang.hitch(theAccumulator , "getResult")) ;//输出3
    } );

</script>
</body>
</html>
时间: 2024-09-29 04:42:16

dojo框架用hitch实现函数与上下文的绑定的相关文章

Dojo框架:误解与现实[转载]

随着Ajax技术的流行,越来越多的Web应用使用Ajax技术来提高用户体验.使用Ajax技术的一个重要优势是不需要额外的浏览器插件支持,只需要使用浏览器原生的API,并利用JavaScript来操作即可.使用原生API时会遇到的两个比较大的问题是浏览器兼容性和底层A代PI接口带来的编程复杂性.同样的功能在不同的浏览器上的实现方式是存在差异的.如果一个应用希望支持不同的浏览器,则开发人员需要添加很多的浏览器检测或嗅探的代码.比如同样的事件绑定功能,在IE上使用attachEvent,而在其它浏览器

Dojo框架学习笔记&lt;一&gt;

因为工作刚接触到dojo框架,网上找各种资料,发现很少很少(大多是以前的),只能看官网学习了,英文不行,一边翻译一边学习,还能学点单词...呵呵 我在Apache下运行Dojo demo,初学,希望有理解不对的地方指点指点... 一.先总的来认识一下dojo的工具包: ①dojo dojo框架的核心包.dojo里普遍实用的软件包.模块都在里面,如:Ajax.DOM操作.类编程.事件.异步Promises.数据存储.拖放以及本地化与国际化等... ②dijit 小部件框架和内建的小部件集. ③do

函数的上下文就是函数里面的this是谁

规律1:函数用圆括号调用,函数的上下文是window对象 比如小题目: function fun(){ var a = 888; alert(this.a); //实际上访问的是window.a } var a = 666; fun(); //弹出666 函数function fun(){}的上下文是什么!不要看它怎么定义,要看它怎么调用!!此时是fun()函数名加上圆括号直接调用,此时上下文就是window对象! 而我们知道:所有的全局变量都是window对象的属性,(注意:函数里面的局部变量

CI框架下的get_instance() 函数

你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象.因为只有一个实例,所以无论这个函数使用多少次都不会消耗资源的.一般来说,只有在helper或library中才使用get_instance. 以前我们都是这样用的:$this->load->library('session'); $this只作用在你自己的控制器.模型.视图中,如果你在自定义的类中也想使用CI的函数话,你就可以这样做:

CI框架的数据库操作函数

//举例查询 (userid,name,sex为user表的数据库字段)    public function testa(){        $this->load->database();            $query = $this->db->query('SELECT * FROM user');        foreach ($query->result() as $row)        {            echo $row->userid;

声明函数 执行上下文 匿名函数

方法一: var foo = function () { //code } 方法二: function foo () { //code } 方法一:foo在进入函数执行上下文开始执行代码的时候,foo是undefined的,执行完var foo = function () { }这句,foo才会得到赋值: 方法二:在进入函数执行上下文开始执行代码的时候,foo已经是一个function了. 一旦进入执行上下文(在执行代码之前),VO(变量对象)就会被一些属性填充: 函数的形参(当进入函数执行上下

278 执行上下文、执行上下文栈:变量提升与函数提升,执行上下文,执行上下文栈,全局执行上下文,函数执行上下文,练习题

变量提升与函数提升 变量提升: 在变量定义语句之前, 就可以访问到这个变量(undefined) 函数提升: 在函数定义语句之前, 就执行该函数 先有变量提升, 再有函数提升 变量声明提升.函数声明提升 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01_变量声明提升.函数声明提升</title> &l

WPF Prism框架下基于MVVM模式的命令、绑定、事件

原文:WPF Prism框架下基于MVVM模式的命令.绑定.事件 Prism框架下的自定义路由事件和命令绑定 BaseCode XAML代码: <Button x:Class="IM.UI.CommandEx.PrismCommandEx" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi

DOJO官方API翻译或解读-dojo/_base/lang --hitch()

hitch() hitch() 是一个函数,会在给定的上下中执行给定一个执行函数.hitch允许你去控制一个函数如何执行,往往在异步操作中起作用. 我们常常会写出这样的代码:(博主:这个代码意图在"click"事件触发时,执行此时定义的"processEvent".) 1 require(["dojo/on"], function(on){ 2 var processEvent = function(e){ 3 this.something =