function(){}。bind(this)和angular.bind(this,function(){})之间的区别

时间:2015-01-18 15:12:37

标签: javascript angularjs

以下代码之间有什么区别

function Ctrl($scope) {
    $scope.$watch(function() {
        return this.variable;
    }.bind(this), /*...*/);
}

function Ctrl($scope) {
    $scope.$watch(angular.bind(this, function() {
        return this.variable;
    }, /*...*/);
}

对我来说是相同的,但使用angular.bind是否有任何好处?

1 个答案:

答案 0 :(得分:3)

旧版浏览器such as IE 8中不存在内置Function.prototype.bind功能。但是,使用polyfill可以实现相同的语法。 This基本上是Angular在内部所做的事情。

angular.bind函数不使用Function.prototype.bind,因此可以在旧版浏览器中使用它。当然,如果您使用的Angular版本不主动支持那些旧浏览器,那么这一点就没有实际意义。