方法调用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
,…)。