社区
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()却当它不存在
...全文
461
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;
}
编写高质量
代码
-Web前端开发修炼之道.azw3
5.1.2 给程序
一个
统一的入口——window.onload和DOMReady 5.1.3 CSS放在页头,JavaScript放在页尾 5.
1.4
引入编译的概念——文件压缩 5.2 JavaScript的分层概念和JavaScript库 5.2.1 JavaScript如何分层 5.2.2...
java property.
js
与jquery兼容修改property.
js
源文件
prototype
.
js
1.4
和jquery 1.91。 二、可以同时使用property自带的ajax请求和jquery的ajax请求。 三、删除了property.
js
中
$,
代码
中
只能应用ajax请求。 var params = Form.serialize('form1'); var myAjax
JavaScript
中
Location
对象
详解
讲解
js
中
window
中
的Location
对象
的所有属性和方法的使用。 属性如下:
hash
:返回
一个
URL的锚部分 host:返回
一个
URL的主机名和端口 hostname:返回URL的主机名 href:返回完整的URL pathname:返回的URL路径名。 ...
Vue2学习笔记
与其他
JS
框架的关联1.
1.5
. Vue周边库1.2. 初识Vue1.3. 模板语法
1.4
. 数据绑定
1.5
. el与data的两种写法1.6. [MVVM](https://so.csdn.net/so/search?q=MVVM&spm=1001.2101.3001.7020)模型1.7. Vue
中
的数据代理1.8....
Vue学习笔记
1.2Vue的特点1.3Vue使用
代码
演示
1.4
. 模板语法
1.4
.1. 模板的理解
1.4
.2. 插值语法
1.4
.3. 指令语法
1.4
.4.
代码
演示
1.5
. 数据绑定
1.5
.1. 单向数据绑定
1.5
.2. 双向数据绑定
1.5
.3.
代码
演示1.6. MVVM 模型1.7. 事件处理...
JavaScript
87,907
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章