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

Shortening the Object name inside the member method in JavaScript

本文关键字:对象 JavaScript 成员方法      更新时间:2023-09-26

我正在使用Object Literal模式编写许多JavaScript小部件和小应用程序。

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

我这样做主要是因为这样更容易编写,而且我也知道这样会有一点性能增益。

    var ApplicationName = {
       property : "foo",
       methodOne : function(){
          var app = ApplicationName;
          return app.property;
       },
       init: function(){
          var app = ApplicationName;
          app.methodOne();
       }
    }
ApplicationName.init();

这种方法有什么问题吗?

我不认为你的方法有什么错,但这不是绝对必要的(你可以进一步缩短它)。像这样调用init:

ApplicationName.init()

…将"init"中的"this"的值设置为"ApplicationName"。它允许你这样做:

var ApplicationName = {
    property : "foo",
    methodOne : function(){
        return this.property;
    },
    init: function(){
        return this.methodOne();
    }
}

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

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()方法必须首先调用,但我想它是无论如何:-)

这种方法没有问题。事实上,建议使用较小的javascript文件,因为这样可以节省服务器和客户端的时间和带宽。但是,如果您介意站点中的小文件,您最好使用网络上可用的几种工具之一来压缩javascript,而不是应用这些小的更改。如果你有一个带有Ctrl+Space(即自动完成!)功能的IDE,那么输入它们应该不难。您可以将压缩任务留给压缩工具执行。

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

总的来说,你写的是安全的,但是性能和文件大小没有明显的变化,所以人们想要喜欢还是不喜欢