代码改变世界

angular.bind方法

2017-07-25 11:19  蝶梦中  阅读(205)  评论(0编辑  收藏  举报
返回一个绑定到self调用fn函数的方法(self在fn函数中是this)。你可以在该函数中使用可选的args参数。这个功能可认为是一个函数绑定,跟函数柯里化有区别。
 
使用方法:
angular.bind(self, fn, args);
 
参数
 
参数名称  参数类型 描述
self   Object   fn的上下文对象,使用this调用
fn Function 被绑定的函数
args * 传入fn中的参数(可选)
 
 
 
 
 
返回值:
Function() :返回动态绑定之后的函数
 
实例
<script src="../angular.js"></script>
<script type="text/javascript">
        var self = { name: 'boyi' };
        //示例1--带参数
        var f = angular.bind(self, //绑定对象,作为函数的上下文
        //被绑定的函数
        function (age) {
        alert(this.name + ' is ' + age + ' !');
        },
        //绑定的参数,可省略
        '15'
        );
        f();//调用绑定之后的function
        //示例2--不带参数
        var m = angular.bind(self, //绑定对象,作为函数的上下文
        //被绑定的函数
        function (age) {
        alert(this.name + ' is ' + age + ' !');
        }
        //省略参数
        );
        m(3);//调用传参的函数
 </script>

 

tips:函数柯里化的基本方法和函数绑定是一样的,使用一个闭包返回一个函数。两者的区别在于,当函数被调用时,返回的函数还需要设置一些传入的参数。curry()仅仅接受一个要包裹的函数作为参数,而bind()同时接受函数和一个object对象。