这道javascript题该如何解?
发布于 11 年前 作者 think2011 4484 次预览 最后一次回复是 11 年前 来自 分享
题目
var foo = new Foo(2); // foo.val = 2;
var boo = new Foo(3); // boo.val = 3;
foo + boo // => 结果必须是 5
解决方案模板
var Foo = function(value) {
this.val = value;
}
8 回复
var foo = function(value) { this.val = value; this.toString = function() { return this.val; } }; try it……
@hainee
http://www.jb51.net/article/46753.htm 找到一篇关于运算转换的。 那么用valueOf应该更好。
@hainee
最好是覆盖
valueOf,而不是toString。楼上的是正道,但我有个变态 var Foo = function(val){return val == 2 ? [] : [5]}
@wuliao49 为何是返回数组?返回 0 和 5 不是更直观吗
@think2011 3个妞!
@alsotang 用new的话,直接返回 0 和 5是拿不到的,数组可以。
改变constructor的返回值不是个好方法,虽然目的看起来达到了。。