Javascript 将get和set添加到构造函数的原型链中

Javascript 将get和set添加到构造函数的原型链中,javascript,get,set,Javascript,Get,Set,这段代码应该做一个简单的任务,即计算两点之间的距离。实际上,我写这段代码是为了了解get和set是如何工作的,因为我对这一概念还不熟悉。但它不断给我带来错误,比如出现了意外的逗号/分号。我无法找出实际的问题是什么 另外,我还有一个问题,如果我想为x和y变量设置新的值,我该如何实现?我的意思是我可以将set属性作为一个函数来处理,并简单地发送值点。加法(5,6,7,8) 这不是声明setter和getter的好方法。看 下面是一个带有修复程序的实时示例: (函数(){ 功能点(x1、x2、y1、

这段代码应该做一个简单的任务,即计算两点之间的距离。实际上,我写这段代码是为了了解get和set是如何工作的,因为我对这一概念还不熟悉。但它不断给我带来错误,比如出现了意外的逗号/分号。我无法找出实际的问题是什么

另外,我还有一个问题,如果我想为x和y变量设置新的值,我该如何实现?我的意思是我可以将set属性作为一个函数来处理,并简单地发送值点。加法(5,6,7,8)


这不是声明setter和getter的好方法。看

下面是一个带有修复程序的实时示例:

(函数(){
功能点(x1、x2、y1、y2){
这是x1=x1;
这个。x2=x2;
这个。y1=y1;
这个。y2=y2;
}
Object.defineProperty(Point.prototype,“addition”{
get:function(){
返回Math.sqrt((this.x2 this.x1)+(this.y2 this.y1));
},
设置:功能(点){
此点x1=点x1;
此点x2=点x2;
此点1=点1;
this.y2=点.y2;
}
});
var点=新点(1,2,3,4);
console.log(points.addition);
document.getElementById(“输出”).textContent=points.addition;
})();

谢谢!!你说这不是一个好方法。但这不是错误的方法。那么为什么我的代码不起作用呢?也许你使用了一种过时的语法:
过去,JavaScript支持其他几种语法来定义getter和setter。这些语法都不受其他引擎的支持,并且在最新版本的JavaScript中已经取消了支持。有关删除的内容以及如何适应这些删除的详细信息,请参阅此已删除语法的剖析。
   (function(){
   function Point(x1,x2,y1,y2){
      this.x1=x1;
      this.x2=x2;
      this.y1=y1;
      this.y2=y2;
   }
   Point.prototype={
      get addition(){
          return Math.sqrt((this.x2-this.x1)+(this.y2-this.y1));
      },
      set addition(x1,x2,y1,y2){
           this.x1=x1;
           this.x2=x2;
           this.y1=y1;
           this.y2=y2;
      }
   };
   var points=new Point(1,2,3,4);
   console.log(points.addition);
   })();