使用分配给常量的函数



我在打印人名时遇到问题。

我试过person1.printName()printName(person1)这样的组合,但都不起作用。你能给我什么建议吗?

const printName = function() {
console.log(this.name);
}

const person1 = {
name: 'Aaron Towels' 
}

const person2 = {
name: 'Tom Clancy' 
}

您需要将人员作为参数传递给您的函数:

const printName = function(person) {
console.log(person.name);
}
const person1 = {
name: 'Aaron Towels' 
}
const person2 = {
name: 'Tom Clancy' 
}
printName(person1);
printName(person2);

有3个选项:

  1. 使用Function.prototype.bind
const bound_p1 = printName.bind(person1);
bound_p1();

或更短的语法

printName.bind(person2)();

const printName = function() {  console.log(this.name); }
const person1 = {  name: 'Aaron Towels' };
const person2 = {  name: 'Tom Clancy' };
const bound_p1 = printName.bind(person1);
bound_p1();
printName.bind(person2)(); // shorter syntax

  1. 添加值为printNameprint属性

const printName = function() {  console.log(this.name); }
const person1 = {  name: 'Aaron Towels', print: printName };
const person2 = {  name: 'Tom Clancy', print: printName };
person1.print();
person2.print();

  1. 使用Object destructuring调整printName方法

const printName = function({name}) {  console.log(name); }
const person1 = {  name: 'Aaron Towels' };
const person2 = {  name: 'Tom Clancy' };
printName(person1);
printName(person2);

"的情况下;需要在不改变功能的情况下进行锻炼">,我建议您可以使用选项1来完成。

最新更新