首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中缩短成员方法中的对象名

在JavaScript中缩短成员方法中的对象名
EN

Stack Overflow用户
提问于 2011-12-09 23:58:41
回答 3查看 210关注 0票数 2

我正在编写大量使用对象文字模式的JavaScript小部件和小应用程序。

我做的一件事是在其中一个方法中,我将应用程序名称缩写为“app”。

我这样做主要是因为它更容易编写,而且我也知道这会带来很小的性能提升。

代码语言:javascript
复制
    var ApplicationName = {
       property : "foo",
       methodOne : function(){
          var app = ApplicationName;
          return app.property;
       },
       init: function(){
          var app = ApplicationName;
          app.methodOne();
       }
    }
ApplicationName.init();

这种方法有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-10 00:14:43

我不认为您的方法有任何问题,但它不是严格必要的(您可以进一步缩短它)。像这样调用init

代码语言:javascript
复制
ApplicationName.init()

init内部的this的值...sets为ApplicationName。它允许您执行以下操作:

代码语言:javascript
复制
var ApplicationName = {
    property : "foo",
    methodOne : function(){
        return this.property;
    },
    init: function(){
        return this.methodOne();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2011-12-10 00:07:56

你的方法没有问题。我不知道下面的模式是否对你也有帮助:

代码语言:javascript
复制
var ApplicationName = (function () {
    var app;
    return {
        property: "foo",
        methodOne: function() {
            return app.property;
        },
        init: function() {
            app = ApplicationName;
            app.methodOne();
        }
    }
})();

ApplicationName.init();

console.log(ApplicationName.property); // "foo"

这样,您只需为ApplicationName指定别名一次。这确实意味着必须首先调用init()方法,但我猜不管怎样:-)

票数 0
EN

Stack Overflow用户

发布于 2011-12-10 00:10:38

这种方法没有任何问题。事实上,推荐使用较小的javascript文件,因为它们可以节省服务器和客户端的时间和带宽。然而,如果你介意你的站点中的小文件,你最好用网络上可用的几个工具中的一个来压缩你的javascript,而不是应用这些小的改变。如果你有一个好的带有Ctrl+Space的集成开发环境(即自动完成!)功能,那么将它们全部输入就不难了。您可以将压缩留给压缩器工具。

正如您所说,性能的提高可能只有几毫秒,所以通常人们也不会介意这一点。

总体而言,你写的东西是安全的,但在性能或文件大小方面没有明显的变化,所以不管你喜欢与否。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8448146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档