【问题标题】:Creating Javascript prototypes for built-in objects within a namespace为命名空间中的内置对象创建 Javascript 原型
【发布时间】:2014-04-25 01:17:28
【问题描述】:

是否可以为特定命名空间内的内置对象创建原型以避免与共存代码发生冲突?

例如,假设我有这个原型:

// prototype to be run against native objects
Object.prototype.getSomeInfo = function() {
    // do stuff with object
}

但是如果getSomeInfo 是一些共存代码中的现有方法呢?

有没有可能做一些我可以称之为someObject.myCustomLibrary.getSomeInto()的事情?

【问题讨论】:

  • 对象是原生的,但最好叫它built–in。增加 Object.prototype 被认为是不好的形式,因为它使 for..in 枚举复杂化,尽管 for..in 无论如何都应该防止这种情况发生。
  • “但是如果 getSomeInfo 是一个现有的原型怎么办……”我认为你的意思是方法。
  • @RobG:谢谢,我不确定我的术语是否正确。问题已编辑。
  • 这正是为什么扩展内置对象的原型不是一个好主意的原因之一。
  • @FelixKling:我已经阅读了对此的不同意见。它吸引我的是维护 Javascript Object.method 约定。

标签: javascript object namespaces prototype


【解决方案1】:

好的,我接受了 FelixKing 的建议,只是将所有内容移到了非原型函数中。

现在我可以称他们为myLibrary.someCategory.function(myObject, param, param, ...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2011-06-03
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多