1

私は次のようなカスタムオブジェクトの関数を作成できることを知っています

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

次に、新しいプロパティを作成して、myFunc1またはmyFunc2にそのプロパティを設定し、後でnewObj.myPropertyを実行してそのプロパティを使用できるようにするにはどうすればよいですか。

4

4 に答える 4

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
于 2012-08-13T00:32:35.090 に答える
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
    }
}
于 2012-08-13T00:33:58.320 に答える
1

オブジェクトの新しいプロパティを明示的に定義する必要はありません。this.yourNewProperty = "blabla"関数内で使用するだけです。ただし、オブジェクトの説明の最初にyourNewProperty: "",( ""の代わりに必要なダミー値を使用して)のように明示的に定義することをお勧めします。これにより、コードの可読性が大幅に向上します。

于 2012-08-13T00:35:56.243 に答える
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」に続いて、「Goodbyeworld」を表示します。

于 2012-08-13T00:37:56.663 に答える