我知道我可以为自定义对象创建函数,如
var newObj = {
myFunc1: function () {
alert('hello');
},
myFunc2: function () {
alert('hello');
}
}
现在我如何创建一个新属性,以便我可以在myFunc1或myFunc2中设置该属性,然后通过执行newObj.myProperty来设置它。
答案 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”