全局地在Object上添加keys()方法

时间:2014-09-21 03:29:32

标签: javascript object methods prototype

我正在尝试在所有对象上创建一个方法:

可以有这个结果:

var obj = {'first_name': 'Alfred', 'last_name': 'Huang', 'age': 27, };
print(obj.myKeys());  // echos: ['age', 'first_name', 'last_name'];

我编写了如下代码(使用书中的技巧):

Function.prototype.method = function(name, func) {
    if(!this.prototype[name]) {
        this.prototype[name] = func;
    }
};

Object.method('myKeys', function() {
    var i, result = [];
    for(i in this) {
        if(this.hasOwnProperty(i)) {
            result.push(i);
        }
    }
    return result.sort();
});

该方法适用于我的计算机,但它似乎与其他组件发生碰撞,因此甚至无法在小提琴中运行,jQyery库也会受到影响。

那怎么回事?任何人都可以指出并告诉我如何正确使用它,我只想创建一个keys函数来获取对象的排序键。

0 个答案:

没有答案