Javascript 如何在JS中将函数设置为类?

Javascript 如何在JS中将函数设置为类?,javascript,Javascript,我有一个函数 function log() { console.log('something'); } 我希望此对象具有: class Car { constructor(name) { this.name = name; } log() { // something } } 如何在不重复函数内部代码的情况下附加它?如下所示 作为成员函数或在原型上 等级车{ 建造师(姓名){ this.name=名称; } log=str=>console.log(

我有一个函数

function log() {
    console.log('something');
}
我希望此对象具有:

class Car {
  constructor(name) {
    this.name = name;
  }
  log() {
    // something
  }
}
如何在不重复函数内部代码的情况下附加它?

如下所示

作为成员函数或在原型上

等级车{
建造师(姓名){
this.name=名称;
}
log=str=>console.log(str);//如果在别处定义了log,则为log=log
}
const carA=新车();
卡拉日志(“vroom”);
//或
const logger=str=>console.log(str);
Car.prototype.logger=记录器;
const carB=新车();
carA.logger(“vroom”);//也可用于以前的车辆对象和其他车辆对象

碳水化合物记录器(“vroom”)
您可以将函数作为方法附加到
汽车
原型上,因此现在它将作为方法用于所有实例

函数日志(){
console.log('something');
}
班车{
建造师(姓名){
this.name=名称;
}
}
Car.prototype.log=log;
const a=新车(“奥迪”);
const b=新车(“宝马”);
a、 log();

b、 log()基本上你可以用三种方式来做

第一种方法是使用类构造函数并在构造函数调用中传递函数
函数日志(){
console.log('something');
}
班车{
构造函数(名称、日志){
this.name=名称;
this.log=log
}
}
康斯特奥迪=新车(“名称”,日志);

log()
Car.log=log@WaisKamal,将添加一个静态函数。与您可以执行的第二个操作不同:
Object.assign(Car.prototype,{log})
在函数中重复代码。如何操作。我在该脚本中只定义了一个函数,因此不需要重复。我想使用单独定义的函数。请看我的更新。Object.setPrototypeOf()也可以吗?请看;)如何使用prototype方法添加getter方法?实际上没有直接的方法,只能通过以下方式完成-类foo{constructor(){this.a=“something”;}}class bar扩展foo{constructor(){super();}method(){返回this.a}}const newBar=new bar();console.log(newBar.method())