我的问题:
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对象中看到这种语法。有人会告诉我这个语法吗?
答案 0 :(得分:2)
这是一个getter function。当你阅读它时它看起来像一个变量:
var someService = nsPreferences.mPrefService;
它在不使用常规调用parens的情况下调用该函数。您还可以使用set
运算符为同一属性创建“setter”函数:
set mPrefService(val){
this.actualVal = val;
},
nsPreferences.mPrefService = "service";