如何在javascript中为根类对象添加一个新方法

How to add a new method to root class object in javascript?

本文关键字:添加 新方法 一个 对象 javascript      更新时间:2023-09-26

我想在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());

对象是对象的类型,我为对象添加了新的函数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中添加大小函数到对象类?

第二个实现是正确的。你只需要改变

console.log(obj.size)

console.log(obj.size())

我认为应该这样做:

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