社区
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()却当它不存在
...全文
532
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
一个
执行计划异常变更的案例 - 外传之SQL Profile(下)
之前的几篇文章: 《
一个
执行计划异常变更的案例 - 前传》 《
一个
执行计划异常变更的案例 - 外传之绑定变量窥探》 《
一个
执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《
一个
执行计划异常变更的案例 - 外传之rolling invalidation》 《
一个
执行计划异常变更的案例 - 外传之聚簇因子(Clustering Factor)》 《
一个
执行计划异常变更的案例 -
JavaScript
87,985
社区成员
224,681
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章