使用预定义的方法来更改对象的属性
Using a pre-defined method to change a property of an object Javascript
我有一个在创建对象之前定义的函数。这个预定义的函数使用' This '关键字来更改对象中属性的值。在对象内部,我有一个方法,它调用带有一个参数的预定义方法。然而,调用此方法后,我试图打印应该被改变的属性的值,它仍然保持不变。我该如何解决这个问题?
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
你应该在对象上下文中调用这个函数:
setHumanName: function(name) {
setName.call(this, name);
}
就用
var human = {
name: "Nothing here yet",
setHumanName: setName // no invocation, only assigning the function
};
对于在对象上显式调用任意函数(以便它们的this
关键字设置为该对象),使用该函数的call
方法。
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 如何将数组项添加到对象属性中
- 设置嵌套对象属性的更好方法
- JavaScript管理具有重复属性名称的对象属性
- 如何使用element.myobj.prop等具有对象属性的元素
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 如何在AngularJS工厂中正确声明对象属性
- 如何使用object.assign()从其他对象引用基本对象属性
- 使用XPath样式访问Javascript JSON对象属性
- 将javascript对象(属性+值)合并到一个对象中
- 数组:使对象属性成为数组键
- 无法从JavaScript中的函数调用对象属性
- Google Closure Advanced |无法识别对象属性|动态属性
- Javascript从匿名函数访问外部对象属性
- 从函数更改对象属性
- 如何从字符串变量访问对象属性
- 从嵌套对象属性中获取排除某个值的最高值
- 在Aurelia computeds中,当设置依赖关系时,如何声明对对象属性的依赖关系
- 传递数量不确定的可能嵌套的对象属性