我想知道为什么这个例子显示了以下行为。如果我们写:
let person = {
name: 'ENoy',
age: 25,
weekendAlarm: 'No alarms needed',
weekAlarm: 'Alarm set to 7AM',
sayHello: () => {
return `Hello, my name is ${this.name}`;
},
sayGoodbye(){
return 'Goodbye!';
}
};
console.log(person.sayHello());
let friend = {
name: 'Bruno'
};
friend.sayHello = person.sayHello;
console.log(friend.sayHello());
我们得到输出:
Hello, my name is undefined
Hello, my name is undefined
如果我们尝试使用:
let person = {
name: 'ENoy',
age: 25,
weekendAlarm: 'No alarms needed',
weekAlarm: 'Alarm set to 7AM',
sayHello: () => {
return `Hello, my name is ${person.name}`;
},
sayGoodbye(){
return 'Goodbye!';
}
};
console.log(person.sayHello());
let friend = {
name: 'Tori'
};
friend.sayHello = person.sayHello;
console.log(friend.sayHello());
我们看到:
Hello, my name is ENoy
Hello, my name is ENoy
在Java中,我已经看到了各种方法来完成它:
Java - get the current class name?
在JavaScript中,我看到了构造函数:
但我认为在上一个链接中我们得到了一个方法,它实例化了我们在本主题中想要的对象,从声明函数的对象中获取变量。