【问题标题】:Is is safe to use function reference as an object property/key [duplicate]将函数引用用作对象属性/键是安全的[重复]
【发布时间】:2013-08-24 02:36:38
【问题描述】:

我有什么理由不应该使用函数引用作为对象的属性/键?此代码在 Chrome、Firefox 和 IE8 中有效,但“只是因为某些东西有效......”

var x = {}

var a = function() { return 'a' };
var b = function() { return 'b' };

x[a] = 1
x[b] = 2

x[a] === x[a] // returns true
x[a] === x[b] // returns false
x[b] === x[b] // returns true
x[a] // returns 1
x[b] // returns 2

【问题讨论】:

标签: javascript performance cross-browser


【解决方案1】:

对象键是字符串。 x[a]中使用的其实是x[a.toString()]

这意味着您作为键的函数与字符串的键完全相同:

x[a] === x["function () { return 'a' }"]

所以是的,您可能会认为它既不安全也不合理。很难想象它会在什么环境中有用或有效。

【讨论】:

  • 看到这就是我的想法,关于键是字符串,但 Chrome 的调试器让我失望,因为它没有显示关于键的引号。 var x = {'1': 'a'}; x; 打印出 Object {1: "a"}
猜你喜欢
  • 2012-10-12
  • 2011-06-06
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多