如何在JavaScript中为自定义对象创建属性?

时间:2012-08-13 00:27:27

标签: javascript

我知道我可以为自定义对象创建函数,如

var newObj = {
    myFunc1: function () {
        alert('hello');
    },
 myFunc2: function () {
        alert('hello');
    }
}

现在我如何创建一个新属性,以便我可以在myFunc1或myFunc2中设置该属性,然后通过执行newObj.myProperty来设置它。

4 个答案:

答案 0 :(得分:3)

var newObj = {
    myFunc1: function () {
        this.greeting = "hello";
    },
    myFunc2: function () {
        alert(this.greeting);
    }
};

newObj.myFunc1(); // set the property on newObj
newObj.myFunc2(); // alert the property on newObj

alert(newObj.greeting); // access it directly from the object

答案 1 :(得分:1)

如果我正确地解释这篇文章,那么你可以这样做:

var newObj = {
    propertyHere: "Here's a property.", // custom property
    myFunc1: function () {
        newObj.propertyHere = "Here's a changed property."; // set property
    },
    myFunc2: function () {
        alert(newObj.propertyHere); // get property
    }
}

答案 2 :(得分:1)

您不必为对象明确定义新属性。只需在函数内使用this.yourNewProperty = "blabla"即可。但是,最好在对象描述的开头显式定义它,如yourNewProperty: "",(使用你需要的任何虚拟值“”),因为它真的可以提高代码的可读性。

答案 3 :(得分:1)

对象上的函数可以通过this关键字访问其他属性。

var newObj = {
                foo : 'Hello There',
                displayValue: function() { alert(this.foo); },
                changeValue: function() { this.foo = 'Goodbye world'; }
             }


newObj.displayValue();
newObj.changeValue();
newObj.displayValue();

这将显示“Hello There”,然后是“Goodbye world”