社区
JavaScript
帖子详情
prototype.js 1.4,1.5中一个诡异的代码冲突,关于hash对象的,搞了一个小时才发现
Go_Rush
2006-08-21 02:58:18
其实不能说是bug
看我郁闷的代码
var hash={member:1,test:2,ids:3}
alert(hash.member)
alert($H(hash).inspect())
alert($H(hash).toQueryString())
hash.member实际是存在的
但是.inspect() 和 .toQueryString()却当它不存在
...全文
529
6
打赏
收藏
prototype.js 1.4,1.5中一个诡异的代码冲突,关于hash对象的,搞了一个小时才发现
其实不能说是bug 看我郁闷的代码 var hash={member:1,test:2,ids:3} alert(hash.member) alert($H(hash).inspect()) alert($H(hash).toQueryString()) hash.member实际是存在的 但是.inspect() 和 .toQueryString()却当它不存在
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
harryCom
2006-08-21
打赏
举报
回复
晕..没看到二楼的回复
harryCom
2006-08-21
打赏
举报
回复
不要用这些关键字就可以了:
Enumerable
{...}
each: {...}
all: {...}
any: {...}
collect: {...}
detect: {...}
findAll: {...}
grep: {...}
include: {...}
inject: {...}
invoke: {...}
max: {...}
min: {...}
partition: {...}
pluck: {...}
reject: {...}
sortBy: {...}
toArray: {...}
zip: {...}
inspect: {...}
map: {...}
find: {...}
select: {...}
member: {...}
entries: {...}
harryCom
2006-08-21
打赏
举报
回复
member是Enumerable对象的成员,会在这里被改写:
function $H(object) {
var hash = Object.extend({}, object || {});
Object.extend(hash, Enumerable); // member属性被Enumerable对同名属性的重写了
Object.extend(hash, Hash);
return hash;
}
return之前加个断点可以看到member的属性是:
hash.member
{...}
bindAsEventListener: {...}
bind: {...}
ice_berg16
2006-08-21
打赏
举报
回复
命名空间,或换名字
Go_Rush
2006-08-21
打赏
举报
回复
不知道各位有什么好的方法来解决这些 冲突
Go_Rush
2006-08-21
打赏
举报
回复
问题找到了
var Hash = {
_each: function(iterator) {
for (key in this) {
//这里 如果key是 "member",value将得到一个函数对象,而不是期望的值1
var value = this[key];
//所以下面这句将被执行
if (typeof value == 'function' ) continue;
var pair = [key, value];
pair.key = key;
pair.value = value;
iterator(pair);
}
},
member 是Enumerable的一个方法
Object.extend(Enumerable, {
map: Enumerable.collect,
find: Enumerable.detect,
select: Enumerable.findAll,
member: Enumerable.include,
entries: Enumerable.toArray
});
而他,则把这个方法塞给了哈希对象
function $H(object) {
var hash = Object.extend({}, object || {});
Object.extend(hash, Enumerable);
Object.extend(hash, Hash);
return hash;
}
一个
执行计划异常变更的案例 - 前传
今天快下班的时候,几位兄弟来聊
一个
问题,大致是昨天应用使用的数据库突然出现性能问题,DBA
发现
有一些delete语句执行时间骤长,消耗大量系统资源,导致应用响应时间变长积Q。目前掌握的信息如下: (1) 应用已经很久未做过更新上线了。 (2) 据开发人员反馈,从之前的应用日志看,未出现处理时间逐步变长的现象。 (3) 这是一套RAC+DG的环境,版本未知,猜测至少应该是11g的版本。 (4)
一个
执行计划异常变更的案例 - 正传
之前的几篇文章: 《
一个
执行计划异常变更的案例 - 前传》 《
一个
执行计划异常变更的案例 - 外传之绑定变量窥探》 《
一个
执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《
一个
执行计划异常变更的案例 - 外传之rolling invalidation》 《
一个
执行计划异常变更的案例 - 外传之聚簇因子(Clustering Factor)》 《
一个
执行计划异常变更的案例 -
一个
执行计划异常变更的案例 - 外传之直方图
今天单位值班,有一些时间可以继续完成这篇连载文章。首先祝所有朋友新年快乐!感谢你们在这一年当
中
对我文章的关注和指点,来年我们共同继续努力!之前的几篇文章: 《
一个
执行计划异常变更的案例 - 前传》 《
一个
执行计划异常变更的案例 - 外传之绑定变量窥探》 《
一个
执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《
一个
执行计划异常变更的案例 - 外传之rolling inva
一个
执行计划异常变更的案例 - 外传之查询执行计划的几种方法
之前的几篇文章: 《
一个
执行计划异常变更的案例 - 前传》《
一个
执行计划异常变更的案例 - 外传之绑定变量窥探》 《
一个
执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《
一个
执行计划异常变更的案例 - 外传之rolling invalidation》《
一个
执行计划异常变更的案例 - 外传之聚簇因子(Clustering Factor)》本篇外传主要介绍一些常用的执行计划查看方法。SQ
JavaScript
87,987
社区成员
224,683
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章