JavaScript的表达式解析器-3. 成员属性系统
来源:互联网 发布:ntp 端口 编辑:程序博客网 时间:2024/05/16 10:18
为了方便实现成员的属性,使用了以下方法。该方法能够一次性生成属性的内部存储和Setter/Getter方法,但缺点是会浪费额外的空间。
var igame;importNamespace( 'igame.Base' );/*! Initialize global property count which is used as the surfix of properties'* name internally.*/( function (){if ( igame.GLOBAL_PROP_COUNT == undefined ){igame.GLOBAL_PROP_COUNT = 0;}} )();/*! Declare new property \param obj object which will be assigned a new property.\param name name of property.\param defaultValue default value of property.\param isReadonly indicates whether the property is read only.\param nameOfValidateFunc the function to validate assigned value.\param nameofConvertFunc the function to convert assigned value.*/igame.newProperty = function ( obj, name, defaultValue, isReadonly, nameOfValidateFunc, nameofConvertFunc ){//var value = defaultValue;var varName = '_private_' + obj.classname + '_' + name + '$' + igame.GLOBAL_PROP_COUNT++;obj[varName] = defaultValue;// Add getter obj['get' + name] = function () { //return value; return obj[varName]; }// Add setter if ( isReadonly ) { obj['set' + name] = function () { throw new Error( 'Property \'' + name + '\' is isReadonly' ); }; } else { obj['set' + name] = function ( val ) { if ( typeof obj[nameOfValidateFunc] == 'function' && !obj[nameOfValidateFunc]( val ) ) throw new Error( 'set' + name + ': invalid value' ); if ( typeof obj[nameofConvertFunc] == 'function' ) obj[varName] = obj[nameofConvertFunc]( val ); else obj[varName] = val; } }} // function newProperty
一个使用该方法的例子是:
/*! OperatorBase */igame.Expression.Operator.OperatorBase = function (){igame.Base.call( this );igame.newProperty( this, 'Token', '' );}
...this.setToken('+');...log('Token is ' + this.getToken());...
- JavaScript的表达式解析器-3. 成员属性系统
- JavaScript的表达式解析器-1.引言
- lambda表达式的解析(六) 成员访问表达式
- JavaScript的表达式解析器-5. 操作符的实现
- JavaScript的表达式解析器-6. 函数的实现
- JavaScript的表达式解析器-2. 模拟继承
- JavaScript的表达式解析器-4. 使用JSFormula
- 解析成员属性和成员方法
- javascript 原型成员方法使用成员属性
- javascript属性访问表达式
- javascript对象属性的赋值解析
- JavaScript正则表达式解析
- JavaScript正则表达式解析
- property 的成员属性
- javascript正则表达式RegExp的静态属性之$1-$9
- JavaScript的私有成员
- javascript 正则表达式 一个 匹配和解析url的
- javascript中解析四则运算表达式的算法和示例
- doxygen中表明结构类型的命令
- android如何支持新的语言
- JAD参数
- 传真机的使用方法
- CCS工程中使用EMCV所需做的配置和修改
- JavaScript的表达式解析器-3. 成员属性系统
- Freebsd ssh连接不上
- 记录一下,AS3反射功能的实现方法
- Office 2010下VBA Addressof的应用
- C题目
- linux 下卸载软件
- AD9 PCB文件黑色区域如何改变?
- iOS关闭键盘的两种简单方法
- 栈队串