在Javascript中,如何在对象中使用(全局)函数?该函数将做复杂的事情,并将在创建对象时使用



所以,我在考虑创建一个函数来做一些事情,然后在不同的对象中使用相同的函数。

在下面的代码中有两个实例:测试(01)和注释(02),反之亦然。

"use strict";
function fullName() {
return this.firstName + " " + this.lastName;
}
const person = {
firstName: "Anant",
lastName: "Ghotale"
completeName: fullName.call(person) // (01) does not work
};
//person.completeName = fullName.call(person); (02) this works

console.clear();
console.log(person.completeName);

(02)有效,但(01)无效。

也就是说,在person之外创建一个新的属性,而使用call来put this = person工作,但不能在里面。

这些是我的问题:

  1. 如何在对象中使用(调用)函数?
  2. 这是一个愚蠢的努力,在一个对象内部调用函数?是否有更好的方法来完成同样的任务?

你可能需要使用getter。

function fullName() {
return this.firstName + " " + this.lastName;
}
const person = {
firstName: "Anant",
lastName: "Ghotale",
get completeName() {
return fullName.call(this)
}
};
console.log(person.completeName)

相关内容

  • 没有找到相关文章