我想在javascript中向对象类添加一个名为size的新方法。
var obj = {here: {is: "an"}, object: 2};
object.prototype.size = function() {
var obj=this;
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
console.log(obj.size());
obj是typeof对象,我将对象的新函数添加为object.prototype.size = function(){}
但是当我运行它时,firefox会给我错误:
ReferenceError: object is not defined (line 10)
您可以在此处查看代码:(http://jsbin.com/cisasewo/1/edit)
当我将方法更改为:
时Object.prototype.size = function() {
var obj=this;
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
当它调用时,它只是给我函数的大小而不是函数的大小? 为什么?如何在javascript中将size函数添加到对象类?
答案 0 :(得分:1)
您的第二次实施是正确的。你只需要改变
console.log(obj.size)
到
console.log(obj.size())
答案 1 :(得分:0)
我认为它应该像这样工作:
Object.prototype.size = function() {
var obj=this;
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
var t = new Object();
t.a = 1;
alert(t.size()); ///result is 1 because property a is defined