JavaScript对象内方法调用返回[Function: info]如何修改代码
问题原因
你当前的代码直接访问person对象的info属性,该属性存储的是函数引用本身,所以控制台会直接打印函数对象的标识[Function: info],不会执行函数内部逻辑、返回你想要的字符串结果。
必要修改
只需要在访问info属性时添加括号()完成函数调用即可,修改后的代码如下:
var person={ Name:"John", Age:16, info () { return `I am ${this.Name} and I am ${this.Age} years old.`; } }; console.log(person.info());
修改后运行输出结果为:I am John and I am 16 years old.,符合预期。
补充说明
- JavaScript 中函数作为属性/变量存储时,不带
()访问拿到的是函数对象本身,可用于赋值、作为参数传递等场景 - 只有在函数引用后添加
(),才会触发函数执行,拿到函数的返回值
内容的提问来源于stack exchange,提问作者ANM
相关产品推荐
相关产品推荐

