gpt4 book ai didi

javascript - 如何在javascript中对自定义对象执行小于/大于比较

转载 作者:行者123 更新时间:2023-12-03 12:40:13 24 4
gpt4 key购买 nike

我有一个有几个成员的自定义类。我需要将它们相互比较。 javascript让我写:

var a = new MyType(1);
var b = new MyType(2);
if (a < b) { ...

但我不明白逻辑比较的行为。有人可以解释上述代码中 < 比较的语义吗?有没有办法控制发生的事情,以便我能得到正确的行为?我知道我可以为该类编写一个比较方法,但由于 javascript 允许我编写它,我想知道它认为它在做什么。

谢谢。

最佳答案

您需要定义一个 .valueOf返回可用于比较的原语的方法:

function MyType( value ){
this.value = value;
}

MyType.prototype.valueOf = function() {
return this.value;
};

var a = new MyType(3),
b = new MyType(5);

a < b
true
a > b
false
a >= b
false
b < a
false
b > a
true

如果你不定义它,字符串 "[object Object]"用于比较:
"[object Object]" < "[object Object]"
false
"[object Object]" > "[object Object]"
false
"[object Object]" >= "[object Object]"
true
"[object Object]" <= "[object Object]"
true

关于javascript - 如何在javascript中对自定义对象执行小于/大于比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339506/

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