对象方法可以拥有自己的属性吗?

时间:2016-03-12 13:54:19

标签: javascript

对于功能我可以这样做:

uniqueInteger.counter = 0;

function uniqueInteger() {
    return uniqueInteger.counter++; // Increment and return counter property
}

我也可以用对象方法吗?

2 个答案:

答案 0 :(得分:0)

对象方法是函数。您可以为任何功能执行此操作:

var a = function () { }
a.bar = "f";

for(property in a) {
 console.log(a[property]);
}
// outputs f

但是,请注意"自己的财产"在javascript中有一个特定的含义,强烈建议在迭代属性时检查属性是否是对象自己的属性(例如忽略继承的属性)。

o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop');             // returns true
o.hasOwnProperty('toString');         // returns false
o.hasOwnProperty('hasOwnProperty');   // returns false

答案 1 :(得分:0)

是的,你可以,因为functions are first class objects

  

在JavaScript中,函数是第一类对象,因为它们可以像任何其他对象一样具有属性和方法。它们与其他对象的区别在于可以调用函数。简而言之,它们是Function个对象。



var object = {
        x: function () { return this.x.value; }
    };

object.x.value = 42;
document.write(object.x());