为什么控制台中age输出为undefined?附JavaScript代码示例
问题原因及解决方法
你这段代码里age输出undefined的核心原因是:在对象的方法中直接使用name、age时,JavaScript会去全局作用域查找这些变量,而非当前对象的属性。因为全局作用域里没有定义age(部分环境中name可能是全局变量,但age不存在),所以最终输出undefined。
要访问对象自身的属性,必须用this关键字——在对象方法中,this指向调用该方法的当前对象(也就是这里的object)。
修改后的代码如下:
let object = { name : `Rahim`, age : 10, place : `Delhi`, details : function(){ return `The name is ${this.name}. Age is ${this.age}`; } } console.log(object.details());
执行后控制台会正确输出:The name is Rahim. Age is 10。
另外提一句,原代码里的描述“The fruit name”和对象属性不匹配,属于笔误,也可以顺手修正。
内容的提问来源于stack exchange,提问作者Noor
相关产品推荐
相关产品推荐

