我知道我可以为自定义对象创建函数,例如
var newObj = {
myFunc1: function () {
alert('hello');
},
myFunc2: function () {
alert('hello');
}
}
现在如何创建一个新属性,以便我可以在 myFunc1 或 myFunc2 中设置该属性,然后通过 newObj.myProperty 使用它。
我知道我可以为自定义对象创建函数,例如
var newObj = {
myFunc1: function () {
alert('hello');
},
myFunc2: function () {
alert('hello');
}
}
现在如何创建一个新属性,以便我可以在 myFunc1 或 myFunc2 中设置该属性,然后通过 newObj.myProperty 使用它。
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
您不必为对象显式定义新属性。只需this.yourNewProperty = "blabla"
在您的函数内部使用。但是,在对象描述的开头显式定义它是一种很好的做法,例如yourNewProperty: "",
(使用您需要插入“”的任何虚拟值),因为它确实提高了代码的可读性。
对象上的函数可以通过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”
如果我对这篇文章的理解正确,那么您可以这样做:
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
}
}