javascript - 如何在javascript中向根类对象添加新方法?

标签 javascript oop

我想在 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 中将尺寸函数添加到对象类?

最佳答案

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

console.log(obj.size)

console.log(obj.size())

关于javascript - 如何在javascript中向根类对象添加新方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318928/

相关文章:

c# - 在 C# 中实现多态性,如何最好地做到这一点?

oop - 使用模块中的方法模拟类

JavaScript 原型(prototype)构造函数仅调用一次

javascript - 将 CSS 样式应用于映射项

javascript - 文本区域未显示正确的列

javascript - ReferenceError: "document"未定义

java - Java中Double类型的 "infinity"如何

php - 了解 PHP 中的魔法方法

javascript - 类型错误 : dispatch is not a function in nested component

javascript - 如何在调查中的地名数组中查找相同的字符串(使用javascript)