我感兴趣的是能够确定类方法是在类本身内部执行还是从外部执行,并具有不同的功能。
确定类方法是否在类本身内执行的方法是什么?
这是我感兴趣的一个快速而肮脏的例子:
class Example {
internal = false
meow () {
console.log(this.internal);
return 'meow'
}
makeSound () {
return this.meow.bind({...this, internal: true})();
}
}
const example = new Example();
console.log(example.meow())
console.log(example.makeSound())
此处,Example#meow
运行两次,一次在Example#makeSound
内部运行,一次运行。我想要一种从Example#meow
内部知道方法何时从类内部执行的方法,而不是从类外部执行的方法,例如example.meow()
。
一种方法是将所有内部调用绑定到方法上,如果我将属性internal
添加到此绑定的副本this
上,则可以从{{1 }}呼叫的来源。
这仅仅是概念上的证明,但是尝试克隆它并不是一件好事,这似乎是一个真正的痛苦。