0

オブジェクトが作成される前に定義された関数があります。この定義済み関数は、'this' キーワードを使用して、オブジェクトのプロパティの値を変更します。オブジェクト内には、定義済みのメソッドを 1 つの引数で呼び出すメソッドがあります。ただし、このメソッドを呼び出した後、変更されるはずだったプロパティの値を出力しようとしても、同じままです。これを修正するにはどうすればよいですか?

var setName = function(yourName){
    this.name = "Your name is " + yourName;
};

// create an object called `human`
var human = {
    name: "Nothing here yet",
    setHumanName: function(name) {
        setName(name);//Name should be changed now
    }
};

human.setHumanName("Emeka");
console.log(human.name); //this does not print the new value of name
4

2 に答える 2

2

オブジェクト コンテキストで関数を呼び出す必要があります。

setHumanName: function(name) {
    setName.call(this, name);
}
于 2013-04-25T11:22:45.627 に答える