我想问一个关于对象的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 ;
}
}
您可以在此处找到有关它的更多信息:箭头函数和这个