|
本帖最后由 jixun66 于 2013-8-5 13:36 编辑
方法: 置属性- 对象.方法 (“Eval”, dataName + “.” + 名字 + “='” + 值 + “'”)
复制代码 参数 值 合成语句前并没有进行转义,应该由模块函数自行处理。
方法: 加成员- 对象.方法 (“Eval”, “if(!” + 名字 + “.map)'){” + 名字 + “=[]} ” + 名字 + “.push(” + a + 成员值 + a + “)”)
复制代码 代码精简 + 速度优化
方法: 置成员、赋值
在 如果真 (为对象 = 假) 后应加上转义字符自动处理
方法: 置类型- .如果真 (值 = 0)
- 对象.数值方法 (“Eval”, “var ” + dataName + “=null”)
- 返回 ()
复制代码 根据参数备注,值为 0 时应为空。
方法: 取类型
有个地方错了导致取出来的都是 null- 如果真 (对象.逻辑方法 (“Eval”, <span style="line-height: 1.5;">名字 + “ !=null”) = 假)</span>
复制代码 应为- 如果真 (对象.逻辑方法 (“Eval”, _名字 + “ !=null”) = 假)
复制代码 然后自己比较喜欢用 typeof (短些),所以自己改写了该函数:
[e].版本 2
.子程序 取类型_, 整数型, 公开, 空=0,数=2,对象=4,数组=5,文本=6
.参数 名字, 文本型, 可空
.局部变量 l, 文本型
.局部变量 _名字, 文本型
.如果 (名字 ≠ “”)
_名字 = dataName + “.” + 名字
.否则
_名字 = dataName
.如果结束
.如果真 (对象.逻辑方法 (“Eval”, _名字 + “==null”))
返回 (0)
.如果真结束
l = 对象.文本方法 (“Eval”, “typeof (” + _名字 + “)”)
.判断开始 (l = “string”)
返回 (6)
.判断 (l = “object”)
.如果真 (对象.逻辑方法 (“Eval”, “!” + _名字 + “.map”))' 只有数组才有 map 这个方法
返回 (4)
.如果真结束
返回 (5)
.判断 (l = “number”)
返回 (2)
.默认
返回 (-1)
.判断结束
[/e]
方法: 取所有属性名
会多出 2 个函数,parseJSON 和 toJSONString。
代码已压缩- obj = 对象.文本方法 (“Eval”, “a=[];for(k in ” + _名字 + “){if(typeof a[k]!='function')a.push(k)}a.join()”)
复制代码 方法: 取成员文本
参数 索引 应该不支持 a.b.c 这样的吧。
方法: 取通用属性
改了改,改成一句话- .子程序 取通用属性, 文本型, 公开, 返回文本.参数 名字, 文本型, , 支持a.b.c[0]或者[0].a.b
- 返回 (对象.文本方法 (“Eval”, 子文本替换 (“if(typeof A=='object'&&!A.map) JSON.stringify(A);else A.toString();”, “A”, dataName + 选择 (取文本左边 (删首尾空 (名字), 1) ≠ “[”, “.”, “”) + 名字, , , 真)))
复制代码 方法: 置属性对象
不需要在代码里面 eval, 直接赋值即可。
对象.方法 (“Eval”, dataName + “.” + 名字 + “=” + 值)
方法: _销毁
没有必要调用方法 消除(), 反正要关了。
方法: 解析
可以直接这样的,快捷。- <span style="line-height: 1.5;">对象.数值方法 (“Eval”, “var ” + dataName + “=” + 数据文本)</span>
- 返回 (对象.逻辑方法 (“Eval”, “!!” + dataName))
复制代码 如有错误,还请指教,谢谢。
|
|