如何在javascript中为根类对象添加一个新方法
How to add a new method to root class object in javascript?
我想在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
相关文章:
- 向对象添加新方法和值,同时避免重复
- 什么'在javascript中将新方法添加到对象中的区别是什么
- 有没有一种好方法可以添加新框并使用 javascript 重新绘制画布
- 分机.js确认方法添加新行字符
- 使用原型将新方法添加到JScrollPane
- 如何在响应和请求中添加新方法
- 如何通过原型添加Nodelist/HtmlColaction新方法
- 在ng重复后添加新行的非卷积方法
- Typescript装饰类添加新方法
- 如何在JavaScript中为字符串添加新方法?
- 如何在向窗口添加新数据时重新加载jQuery插件.没有提供reload()方法
- 在javascript中创建原型,添加一个新方法来引导日期拾取器
- javascript如何在类/对象发生实例化后调用新添加的方法?
- 如何在javascript中为根类对象添加一个新方法
- D3:从头开始添加新节点的最佳方法
- 向现有模块化模式对象添加新方法
- 添加新的画布上下文方法
- 如何在Ext Core中添加一个新方法
- 如何向Dojo添加新方法
- 向jQuery对象添加新方法