console.log.bind(控制台)是什么;做?

时间:2016-03-11 16:23:46

标签: angularjs angular-ui-router

我在我正在处理的应用程序中有这个:

config.options.x = defaults.options.x

有人可以就它的作用给我建议吗?我不知道它为什么被添加但现在我正在看它,并认为我至少应该知道它的作用。

2 个答案:

答案 0 :(得分:3)

在这种特殊情况下,它绝对没有任何价值。我认为有些重构出错了,实际应该做的是:

$rootScope.$on('$stateChangeError', console.log.bind(console));

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

答案 1 :(得分:0)

它没有任何作用,至少没有任何有用的东西......

有时您会看到类似的内容:

z = x.y.bind(x)

在这种情况下,z是一个函数,它将x.y参数设置为this来执行函数x。在您的情况下,由于永远不会使用bind的返回值,因此该语句只是创建一个永远不会被使用的函数。您还会看到这种情况经常传递给回调。作为一个愚蠢的例子:

var foo = function(a, callback) {
    callback(a);
};

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

这与调用b.c(a)

相同