js 中的bind函数

bind是Function.prototype中内置函数

作用是指定函数作用域

代码参考 http://blog.csdn.net/load_life/article/details/7200381

    var obj = {
        name: 'A nice demo',
        fx: function() {
            alert(this.name);
        }
    };
    window.name = 'I am such a beautiful window!';

    function runFx(f) {
        f();
    }
    runFx(obj.fx); //将obj的fx函数传入到runFx函数中  runFx直接调用了obj.fx (由于runFx的执行环境是window) 也就是在window环境中调用obj.fx
    var fx2 = obj.fx.bind(obj); //使fx2的执行环境总是obj  bind函数返回的是一个function
    runFx(fx2); //runFx调用的还是obj中的fx函数 不过该函数仍然是以obj为上下文(执行环境)的

 

 

posted @ 2014-05-21 11:24  cart55free99  阅读(256)  评论(0编辑  收藏  举报