社区
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()却当它不存在
...全文
472
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
作业
写回复
配置赞助广告
用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
kindle高清文字版,可在电脑上用clearview电子书阅读软件阅读。 第1章 从网站重构说起 1.1 糟糕的页面实现,头疼的维护工作 1.2 Web标准——结构、样式和行为的分离 1.3 前端的现状
1.4
打造高品质的前端
代码
,提高
代码
的可维护性——精简、重用、有序 第2章 团队合作 2.1 揭秘前端开发工程师 2.2 欲精一行,必先通十行 2.3 增加
代码
可读性——注释 2.4 提高重用性——公共组件和私有组件的维护 2.5 冗余和精简的矛盾——选择集
中
还是选择分散 2.6 磨刀不误砍柴工——前期的构思很重要 2.7 制订规范 2.8 团队合作的最大难度不是技术,是人 第3章 高质量的HTML 3.1 标签的语义 3.2 为什么要使用语义化标签 3.3 如何确定你的标签是否语义良好 3.4 常见模块你真的很了解吗 3.4.1 标题和内容 3.4.2 表单 3.4.3 表格 3.4.4 语义化标签应注意的一些其他问题 第4章 高质量的CSS 4.1 怪异模式和DTD 4.2 如何组织CSS 4.3 推荐的base.css 4.4 模块化CSS——在CSS
中
引入面向
对象
编程思想 4.4.1 如何划分模块——单一职责 4.4.2 CSS的命名——命名空间的概念 4.4.3 挂多个class还是新建class——多用组合,少用继承 4.4.4 如何处理上下margin 4.5 低权重原则——避免滥用子选择器 4.6 CSS sprite 4.7 CSS的常见问题 4.7.1 CSS的编码风格 4.7.2 id和class 4.7.3 CSS hack 4.7.4 解决超链接访问后hover样式不出现的问题 4.7.5 hasLayout 4.7.6 块级元素和行内元素的区别 4.7.7 display:inline-block和hasLayout 4.7.8 relative、absolute和float 4.7.9 居
中
4.7.10 网格布局 4.7.11 z-index的相关问题以及Flash和IE 6下的select元素 4.7.12 插入png图片 4.7.13 多版本IE并存方案——CSS的调试利器IETester 第5章 高质量的JavaScript 5.1 养成良好的编程习惯 5.1.1 团队合作——如何避免
JS
冲突
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 base层 5.2.3 common层 5.2.4 page层 5.2.5 JavaScript库 5.3 编程实用技巧 5.3.1 弹性 5.3.2 getElementById、getElementsByTagName和getElements-ByClassName 5.3.3 可复用性 5.3.4 避免产生副作用 5.3.5 通过传参实现定制 5.3.6 控制this关键字的指向 5.3.7 预留回调接口 5.3.8 编程
中
的DRY规则 5.3.9 用
hash
对象
传参 5.4 面向
对象
编程 5.4.1 面向过程编程和面向
对象
编程 5.4.2 JavaScript的面向
对象
编程 5.4.3 用面向
对象
方式重写
代码
5.5 其他问题 5.5.1
prototype
和内置类 5.5.2 标签的自定义属性 5.5.3 标签的内联事件和event
对象
5.5.4 利用事件冒泡机制 5.5.5 改变DOM样式的三种方式 附录A 写在规则前面的话 附录B 命名规则 附录C 分工安排 附录D 注释规则 附录E HTML规范 附录F CSS规范 附录G JavaScript规范
java property.
js
与jquery兼容修改property.
js
源文件
一、
js
p页面首先引用jquery,在引用修改后的property.
js
。
prototype
.
js
1.4
和jquery 1.91。 二、可以同时使用property自带的ajax请求和jquery的ajax请求。 三、删除了property.
js
中
$,
代码
中
只能应用ajax请求。 var params = Form.serialize('form1'); var myAjax
Vue2学习笔记
这里写目录标题1. Vue核心1.1. Vue简介1.1.1. 官网1.1.2. 介绍与描述1.1.3. Vue的特点1.
1.4
.与其他
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. 事件处理1.8.1. 事件的基本用法1.8.2.
Vue学习笔记
Vue学习笔记 预备知识 熟悉HTML,CSS和JaveScript语言 文章目录Vue学习笔记一.Vue核心1.1Vue是什么?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. 事件处理1.7.1. 绑定监听1.7.2. 事件修饰符1.7.3. 按键修饰符1.8. 计算属性与监视1
哈希表(
js
实现)
一.应用场景 几乎所有的编程语言直接或者简介应用到哈希表这种数据结构,所以哈希表是一种非常重要的数据结构 1.1.引入哈希表的概念 通过前面的学习,数组在增删改查
中
有非常多的优缺点,但
hash
表是通过数组实现的,但是
hash
表和数组相比有非常多的优缺点 1.
hash
表的删 查找 插入都非常快,无论多少数据,插入和删除的需要接近常量的是时间:o(1)的时间 3.
hash
表的缺点也比较显著,第一点
hash
表的内部存储是无序的,而且不能存储同一key值 1.2.在以下二种应用场景...
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章