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())