Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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,我正在尝试使用OO JavaScript实现以下目标: class Sample { public int x {get; set;} public int y {get; set;} public int z { get {return x+y;} } } 我无法理解如何在上述类中实现属性“z”。您必须使用函数。从ECMAScript第5版(ES5)开始,该函数可以是以常规非函数方式访问的属性的“getter”;在此之前,必须使用显式函数调用 以下是ES5方法,

我正在尝试使用OO JavaScript实现以下目标:

class Sample
{
  public int x {get; set;}
  public int y {get; set;}

  public int z
  {
    get {return x+y;}
  }
}

我无法理解如何在上述类中实现属性“z”。

您必须使用函数。从ECMAScript第5版(ES5)开始,该函数可以是以常规非函数方式访问的属性的“getter”;在此之前,必须使用显式函数调用

以下是ES5方法,使用:|

用法:

var s = new Sample();
s.x = 3;
s.y = 4;
console.log(s.z); // "7"
var s = new Sample();
s.x = 3;
s.y = 4;
console.log(s.getZ()); // "7"
对于ES3(例如早期版本):

用法:

var s = new Sample();
s.x = 3;
s.y = 4;
console.log(s.z); // "7"
var s = new Sample();
s.x = 3;
s.y = 4;
console.log(s.getZ()); // "7"
请注意,您必须实际执行函数调用
getZ()
,而ES5使其成为一个属性访问(只需
z



请注意,JavaScript(目前)还没有
功能(尽管它是一个保留字,即将推出)。您可以通过构造函数和原型创建对象类,因为JavaScript是一种原型语言。(好吧,这有点混合。)如果你开始进入层次结构,就会有一些重要的、重复的管道。有关这方面的更多信息,请参见这里的堆栈溢出。

这看起来像Java,而不是JavaScript。你是说你想在JavaScript中实现类似的东西吗?(另外,“x”和“y”的值的语法也不熟悉。)在我看来更像C。但是,您是如何实现类的其余部分的?@Niko yes可能您是对的:-)代码是C语言的,只是为了解释我在JavaScript(而不是Java)中寻找的内容。