首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >console.log.bind(console);做什么?

console.log.bind(console);做什么?
EN

Stack Overflow用户
提问于 2016-03-12 00:23:46
回答 2查看 470关注 0票数 0

我在一个正在开发的应用程序中实现了这个功能:

代码语言:javascript
复制
    $rootScope.$on('$stateChangeError',
        function (event, toState, toParams, fromState, fromParams) {
            console.log.bind(console);
        });

有人能给我一些关于它的用途的建议吗?我不知道为什么要添加它,但现在我正在看它,我想我至少应该知道它是做什么的。

EN

回答 2

Stack Overflow用户

发布于 2016-03-12 00:28:55

在这种特殊情况下,它完全没有做任何有价值的事情。我认为一些重构出了问题,实际上它应该是这样做的:

代码语言:javascript
复制
$rootScope.$on('$stateChangeError', console.log.bind(console));

这会将console.log方法附加为事件处理程序,这只会导致它记录事件的每次调用。由于在调用时绑定this的方式,.bind(console)是正确保留上下文所必需的。

票数 3
EN

Stack Overflow用户

发布于 2016-03-12 00:27:48

它什么也做不了,至少没有任何有用的东西...

有时,您可能会看到类似以下内容:

代码语言:javascript
复制
z = x.y.bind(x)

在本例中,z是一个在this参数设置为x的情况下执行函数x.y的函数。在本例中,由于从未使用过bind的返回值,因此该语句只是创建了一个从未使用过的函数。您还会看到这个函数经常被传递给回调函数。举个愚蠢的例子:

代码语言:javascript
复制
var foo = function(a, callback) {
    callback(a);
};

foo(a, b.c.bind(b));

这与调用b.c(a)是一样的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35945153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档