gpt4 book ai didi

javascript - 命名空间的差异

转载 作者:行者123 更新时间:2023-12-02 17:46:19 26 4
gpt4 key购买 nike

我正在考虑不同类型的命名空间,并想知道最好使用哪种。

我个人使用以下内容:

var App = {

foo: function(){},
bar: function(){}

}

但我注意到一些大师正在使用一些不同的技术,我想知道为什么要采取额外的步骤。

 var app = app || {}

这样做是出于必要还是出于复杂性?您建议使用哪一个?

最佳答案

您所询问的构造本身与命名空间无关。这只是一种不破坏现有值(或命名空间,如果你愿意的话)的方法。

如果您认为 App 可能已经存在,并且您不想用您的实现覆盖它,则可以使用如下内容:

var App = App || {};
App.foo = function(){};
App.bar = function(){};

当然,如果App确实存在,并且具有属性foo和/或bar,您将破坏那些。

适当的命名空间允许调用者决定调用什么内容。例如,假设您的项目想要导出 App。但是如果调用者已经在使用App怎么办?现在他们有责任更改名称。更好的方法是让他们决定如何调用它。 Node 中的命名空间是这样工作的:

var http = require('http');
var myHttp = require('http');

httpmyHttp 都是 http 包的实例,但调用者可以决定它们实际的名称。

Browserify ( https://github.com/substack/node-browserify ) 项目允许在浏览器中使用 Node 样式的包,这非常方便。它似乎变得很受欢迎。

关于javascript - 命名空间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com