Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加两点的最简单方法_Javascript - Fatal编程技术网

Javascript 添加两点的最简单方法

Javascript 添加两点的最简单方法,javascript,Javascript,我有两点a和b: var a = new Point(10, 20); var b = new Point(5, 15); 我想创建第三点c,它是a和b的总和,如下所示: // same as new Point(15,35) c = new Point( a + b ) 为此,我知道必须重写prototypevalueOf()方法。但它需要同时返回x和y值才能像示例中那样执行 关于如何实现我的点类,有什么提示吗 function Point(x, y) { if(x.isObjec

我有两点
a
b

var a = new Point(10, 20);
var b = new Point(5, 15);
我想创建第三点
c
,它是
a
b
的总和,如下所示:

// same as new Point(15,35)
c = new Point( a + b )
为此,我知道必须重写prototype
valueOf()
方法。但它需要同时返回x和y值才能像示例中那样执行

关于如何实现我的
类,有什么提示吗

function Point(x, y) {
    if(x.isObject && y.isObject){
        this.x = x.x + y.x;
        this.y = x.y + y.y;
    } else {
        this.x = x;
        this.y = y;
    }
} 
不能使用重载,因此需要检查参数。下面是一个工作片段

函数对象(值){
返回值!==null&&(typeof值==='undefined'?'undefined':typeof(value))==='object';
}
功能点(x,y){
if(等高线(x)和等高线(y)){
这个.x=x.x+y.x;
这个.y=x.y+y.y;
}否则{
这个.x=x;
这个。y=y;
}
} 
var a=新点(10,20);
var b=新点(20,10);
var c=新点(a,b);
控制台日志(a);
控制台日志(b);

控制台日志(c)添加两点是什么意思?如果我把伦敦希思罗机场的位置加上芝加哥奥黑尔机场的位置,答案是什么?大西洋某个地方的中点?两点?另一个维度的东西?@Flimzy哈哈好笑!将“点”替换为“坐标”,然后。。。现在有意义了?你想用b的坐标值增加点a的坐标吗?这并不是真正的加分;它在二维中移动一个点。我会考虑让你的API承认这一点。code>AddX()
AddY()
也许<代码>添加XY(x,y)?从字面上说,如果我要加上两点,我希望结果是一组两点。公平地说,“加上两点”实际上意味着什么与问题无关。是的,这是正确的答案&在下面的答案中得出的结论。