方法调用JavaScript中的字段

方法调用JavaScript中的字段,javascript,Javascript,当调用一个对象并返回该对象的字段时,是否有任何方法 function Int16(v) { this.v=v }; var n = new Int16(10); // Instead of "n.v", I would want to use "n" directly if (n.v == 10) { console.log("ok") } var n=new Int16(10)将n设置为对Int16类型的对象的引用 您要查找的可能是设置valueOf和toString函数以返回v的值。我已

当调用一个对象并返回该对象的字段时,是否有任何方法

function Int16(v) { this.v=v }; var n = new Int16(10);

// Instead of "n.v", I would want to use "n" directly
if (n.v == 10) { console.log("ok") }
var n=new Int16(10)
n
设置为对
Int16
类型的对象的引用


您要查找的可能是设置
valueOf
toString
函数以返回
v

的值。我已经设置了
valueOf
方法,但它在比较中不起作用。@Marc:no,比较两个不同的
Int16
对象不会仅仅因为它们的
v
值相等而产生相等结果<代码>=不只是比较原语。你可以实现你自己的
equals
,但是在大于等情况下你会遇到类似的问题。@DavidHedlund但是比较
Int16
Number
应该转换成字符串,对吗?@JanDvorak:是的,
n==10
可以工作,但是
n==n2
(其中
n2=Int16(10)
)不行。@Marc:
==(和
==
)是“(在没有类型协同的情况下)相等”。您明确地告诉JavaScript,如果它们是不同类型的,则不考虑这两个值是相等的,它们是.<代码>n!=10
产生
n!==10
产生
true
。看到您在过去几天里就这个主题发布了很多问题,我想补充以下几点:在JS中根本无法重载运算符(如果不将值减少为基元类型)。如果您确实想探索您要走的路径,请使用自定义对象方法(例如,
eqals
add
compare
,…)。