gpt4 book ai didi

javascript - 是否有对在 Javascript 中实现对象算法的原生支持?

转载 作者:行者123 更新时间:2023-11-30 15:32:18 26 4
gpt4 key购买 nike

想想 Date() 对象:

thisDate = new Date()
thatDate = new Date()
thisDate - thatDate //returns some date object

我是否可以制作一些对象,比如 Clovers() 这样:

theseClovers = new Clovers();
theseClovers.count = 10;
thoseClovers = new Clovers();
thoseClovers.count = 4;

theseClovers - thoseClovers; //returns b = new Clovers(); b.count = 6

这是我设想的方式(但完全是假设的):

function Clovers(){
onSubtract(b){
if(b instanceOf someClass){
return this.count - b.count
}
}
}

最佳答案

function Clovers(val){
this.count=val || 0;
}
Clovers.prototype.valueOf=function(){
return this.count;
};

所以它的工作方式非常相似:

alert(new Clovers(new Clovers(10)-new Clovers(5)).count);
//or long written:
var a=new Clovers(10);
var b=new Clovers(4);
var c=new Clovers(a-b);
alert(c.count);

但是,最好有一个自定义的加法函数,类似于 Array.prototype.concat:

 Clovers.prototype.concat=function(clover){
return new Clovers(this.count-clover.count);
};

像这样使用:

var a=new Clovers(10);
var b=new Clovers(5);
var c=a.concat(b);
alert(c.count);

感谢 Pointy 和 Karl-Johan Sjögren 的想法...

关于javascript - 是否有对在 Javascript 中实现对象算法的原生支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com