0
所以我写一个函数来扩展对象计算有多少项是在其中,所以它可以被用作这样的:扩展对象会导致jQuery的错误
test = {"foo": "bar", "baz": 7, "darth": "maul"}
test.count()
=> 3
我写的代码,例如:
Object.prototype.count = function() {
var count = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
count++;
}
}
return count;
}
这是我在与原型延伸的第一次尝试,而我从内的jquery.js收到此错误:
Uncaught TypeError: Object function() {
var count = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
count++;
}
}
return count;
} has no method 'replace'
堆栈跟踪点回到我打电话css
一个jQuery对象的onLoad:
$img.css({left: 20, top: 50});
不,我觉得有什么具体的关于该行,但我认为这可能是很好的提供。
我在这里做错了吗?
我已经将函数名更改了几次,以得到相同的结果。那么,这是否意味着在使用jQuery时不能扩展Object?我可以把它写成一个直接的函数,但是扩展对我来说更有意义(与字符串的“长度”相比) – 2012-07-25 18:13:21
它可能正在寻找它不希望存在的任何属性。改变Object的原型几乎是个好主意(其他类型的程度较低),因为这会影响检查对象属性的* everything *。像if(myobject.count){...}这样的代码是测试财产存在的事实标准。如果您真的想在通用对象上使用自定义方法,那么只需创建自己的原型并使用它来代替原生对象。 – 2012-07-25 18:16:01
好吧,那只是个屁股。感谢您的帮助 – 2012-07-25 18:17:34