JavaScript对象问题:使用对象名称获取对象的属性值



我想问一个关于对象的javascript属性的问题。在下面的代码中,我有一个javascript对象。我想使用";testName";在函数"内部"中;testFunction";。我发现;this.testName";在javascript对象中不起作用,但如果我做了类似";TestObject.testName";,它工作正常。因此,一般来说,得到像";TestObject.testName";在对象的函数内部?

const TestObject= {
testName:"testValue",
testFunction: ()=>{
var result = TestObject.testName+ "result"; 
return result ;
}
} ```

因此,一般来说,获取诸如"TestObject.testName";在对象的函数内部?

不适用于像这样的单例对象,不,它非常好(您已经使用了const,所以没有人可以将TestObject重新分配为其他对象(。也就是说,它不起作用的原因是你使用了箭头函数,而不是传统的函数或方法。如果你使用传统的函数或方法,this会很好地工作(但请继续阅读(:

// Traditional function
const TestObject1 = {
testName:"testValue",
testFunction: function() {
var result = this.testName+ "result"; 
return result ;
}
};
console.log(TestObject1.testFunction());
// Method
const TestObject2 = {
testName:"testValue",
testFunction() {
var result = this.testName+ "result"; 
return result ;
}
};
console.log(TestObject2.testFunction());

我说";它会很好地工作,";但只有当调用CCD_ 6时CCD_ 4被设置为CCD_。调用testFunction可能会导致this无法正确设置,请参阅如何在回调中访问正确的this了解有关这些情况以及如何处理它们的详细信息。

使用this.testName而不是TestObject.testName

您可以在此处阅读更多关于this的信息:https://www.w3schools.com/js/js_this.asp

@编辑

对不起,我没有注意到你使用了箭头功能。请尝试使用正则函数。箭头函数改变了this关键字在中的工作方式

const TestObject= {
testName:"testValue",
testFunction: function(){
var result = this.testName+ "result"; 
return result ;
}
}

您可以在此处找到有关它的更多信息:箭头函数和这个

相关内容

  • 没有找到相关文章

最新更新