javascript对象中不熟悉的语法



我的问题:


    var nsPreferences = {
    property1:"",
    get mPrefService()
        {
          return Components.classes["@mozilla.org/preferences-service;1"]
                           .getService(Components.interfaces.nsIPrefBranch);
        },
    setBoolPref: function (aPrefName, aPrefValue)
        {
          try 
            {
              this.mPrefService.setBoolPref(aPrefName, aPrefValue);
            }
          catch(e)
            {
            }
        },
    getBoolPref: function (aPrefName, aDefVal)// Prefs.jsで使用
        {
          try
            {
              return this.mPrefService.getBoolPref(aPrefName);
            }
          catch(e)
            {
              return aDefVal != undefined ? aDefVal : null;
            }
          return null;        // quiet warnings
        },

    };

在这个对象nsPreferences中,"get-mPrefService(){}"是什么?这是我第一次在javascript对象中看到这种语法。有人能告诉我这个语法吗?

这是一个getter函数。当你阅读它时,它看起来像一个变量:

var someService = nsPreferences.mPrefService;

它在不使用常规调用parens的情况下调用该函数。您也可以使用set运算符为相同的属性创建一个"setter"函数:

set mPrefService(val){
    this.actualVal = val;
},
nsPreferences.mPrefService = "service";

最新更新