我有一个在创建对象之前定义的函数。这个预定义的函数使用'this'关键字来更改对象中属性的值。在对象内部,我有一个方法用一个参数调用预定义的方法。然而,在调用这个方法之后,我尝试打印应该更改的属性的值,但它仍然保持不变。我该如何解决?使用预定义的方法更改对象的属性Javascript
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
你检查了JS控制台吗?如果我正确地记得它,'setName'意思是'this'不是你所期望的,你将会得到“无效属性”错误。 – SJuan76 2013-04-25 11:22:28
我没有收到任何错误,但是当我尝试在setHumandName函数内部使用console.log(name)时,它会输出正确的名称值。 – smac89 2013-04-25 11:30:25