js_*_*js_ 0 javascript arrays jquery prototype object
我想扩展Array和Object,如下面的代码:
$(window).load(function() {
Array.prototype.x = 3
Object.prototype.y = 4
var a = [1, 2]
for (var i in a) {
alert(i + ': ' + a[i])
}
})
/*
[result]
0: 1
1: 2
x: 3
y: 4
*/
Run Code Online (Sandbox Code Playgroud)
这个代码会不会给当前版本或未来版本的jQuery中的jQuery操作带来麻烦?
有了Array.prototype,我觉得你很安全.我不认为在任何地方都有明确的保证,但是jQuery已经在Prototype和MooTools的网站上共存多年,并且它们都扩展了Array.prototype.我认为jQuery团队不想破坏与这些库的兼容性.
但是:永远不要延长Object.prototype.这可能会破坏jQuery自己的代码,并且几乎肯定会破坏插件代码.大多数for..in循环假设{}没有可枚举的属性.如果添加Object.prototype,则表明该假设无效.(除非你使用新的ECMAScript5 defineProperty功能,让你使属性不可枚举,但它还没有被广泛支持.但是,为了好玩,你可以在这里试试.)
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |