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

标签 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有什么优势吗?

最佳答案

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

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

关于javascript - function(){}.bind(this) 和 angular.bind(this, function() {}) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28011228/

相关文章:

javascript - Div 元素未引导点击以启用拖动功能

javascript - Array.method 和 [].method 的区别

javascript - 在 JS 中创建一个函数

javascript - 输入数组在 Angularjs 中作为 null 传递

javascript - Protractor 预期返回用括号而不是引号

javascript - 如何使用请求回调函数内部的 Angular 创建表

javascript - Angular 2.0 Beta - 访问 DOM 适配器 - BrowserDomAdapter

javascript - 使用 Puppeteer 抓取 Google 搜索结果链接

javascript - HTML 在 Firefox 中无法正确呈现(在 Chrome 中工作得很好)

javascript - null 在 xhr 请求中发送了期望的文件内容