天天看点

__defineSetter__

Mozilla的这篇文档 是这么描述的:

Summary

Binds an object's property to a function to be called when an attempt is made to set that property.

Syntax

obj .__defineSetter__(sprop , fun )

之前看到过mozilla这个特有的方法,但一直没有什么机会使用。最近修改handynote,被一堆要去读preference参数的get/set方法弄烦了,就想起这茬。使用下来非常方便,可以简洁结构,提高可配置性

function genSetterGetter(props){

for (var n in props) {

var propName = props[n];

var _fn_getter = function(){

var p= propName;

return function(){

return Application.prefs.getValue('extensions.note.' + p, null)

}

}();

var _fn_setter = function(){

var p= propName;

return function(val){

Application.prefs.setValue('extensions.note.' + p, val)

}

}()

NOTEHelper.__defineGetter__(propName, _fn_getter)

NOTEHelper.__defineSetter__(propName, _fn_setter)

}

}

btw:修改Fx的addons的pref.js的时候一定要记得加最后的分号

继续阅读