【问题标题】:Is there a way to customize/override assignment operations in JavasScript?有没有办法在 Javascript 中自定义/覆盖分配操作?
【发布时间】:2011-04-15 18:57:36
【问题描述】:

每次我分配一个 string 时,我实际上想分配一个 string 对象,而不需要额外的代码。

这个var foo = "bar";
变成var foo = new String("bar");

基本上是劫持任务。


跟进:
如果上述方法不可行,有没有办法对 string 变量类型进行原型化,而不是 String 对象?

正如armando 所指出的,foo 将是一个字符串类型,但本质上是一个自定义数组。如果能够为该类创建函数原型,那就太好了。

【问题讨论】:

  • @vol7ron:根据您最近提出的问题,我认为您真的很想使用 Ruby 进行编程。 JavaScript 不支持您所追求的那种元编程。
  • @Adam Crossland: 我最近的问题没有真正的价值。我已经有一段时间没有编写任何密集的 JavaScript 了,所以我只是想重新开始它(我拒绝使用 PrototypeJQuery)。如果 Ruby 可以作为客户端 Web 应用程序的一部分运行,我会更多地研究它,但我的重点仍然是 ECMAScript。服务器端,我仍然是Perl 的奉献者。 :)
  • @Adam Crossland: 在您的个人资料中,您的博客指向 Google - 强烈:)
  • 我不确定您为什么要这样做。 JS 中的每个字符串文字都可以像 String 对象一样访问 String.prototype 函数。 "zomgwtf".toUpperCase() 工作正常。
  • This 详细介绍了字符串、文字和对象。此外,您可能会发现 this 问题信息丰富。

标签: javascript assignment-operator


【解决方案1】:

这不是你要找的,但你可能想看看Overriding assignment operator in JS

【讨论】:

    【解决方案2】:
    1. 不,这是不可能的
    2. 如果可能,您真的不想这样做,至少在全球范围内不会。

    • 字符串变量类型没有对象所具有的所有额外开销。
      注意:创建的字符串数组(在您的情况下为foo)将具有其他属性(例如foo.length
    • 对象的性能受到影响

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      相关资源
      最近更新 更多