为什么使用dot *和*括号访问来分配属性?

时间:2014-08-27 16:24:31

标签: javascript properties

我刚刚在Knockout的源代码中找到以下内容:

target.subscribe = target['subscribe'] = function …

为什么他们将函数分配给同一属性两次?唯一的区别是他们访问它的方式。据我所知,这不应该对给定的属性名称(JavaScript property access: dot notation vs. brackets?)产生影响。

1 个答案:

答案 0 :(得分:4)

这可能是为了防止代码缩小时出现问题。

target.subscribe可以缩小为类似target.a的内容,但可能会有依赖target.subscribe依赖的代码。例如,您可能有:

var x = 'subscribe';
target[x](something);

分配给两者将允许缩小器完成其工作,而不会破坏对表达式访问的支持。