如何在javascript类中访问该字段

时间:2016-05-12 16:48:29

标签: oop ecmascript-6

抱歉,如果重复,但我没有找到解释。 如何在js类中创建字段?在将来定义...

class Polygon {
   //var whyNot; This makes false
   constructor(height, width) {
      this.height = height;
      this.width = width;
   }

   calcArea() {
     return this.height * this.width;
   }
}

3 个答案:

答案 0 :(得分:0)

您对JS对象的理解有点偏离......您创建了一个调用函数的变量,该函数是它自己的构造函数。然后修改对象以包含您希望稍后调用的函数。像这样https://jsfiddle.net/programndial/vonc5af5/

<input type="button" id="testButton" value="Test" />

function Polygon(height, width) {
    this.height = height;
    this.width = width;

    Polygon.prototype.calcArea = function(string) {
        return this.height * this.width;
    }
}

testButton.onclick = function() {
   var newPoly = new Polygon(10, 25);
   alert(newPoly.calcArea());
}

答案 1 :(得分:0)

答案是(部分)在你的问题中。

我们将从您的评论中的代码和链接中假设您使用的是最新版本的Javascript:ES6或ES2015。

您可以使用您提供的代码中的constructor方法创建它们。

class Polygon {

   constructor(height, width) {
      //height and width will be fields of Polygon
      this.height = height;
      this.width = width;
      //...and whyNot too!
      this.whyNot = 42;
   }

   ...

当然,由于ES6与以前版本的Javascript兼容,您仍然可以使用constructor methods, object literals...

答案 2 :(得分:-2)

检查这个答案。 Constructors in JavaScript objects

您在javascript中没有“类”,您将对象定义为函数。您将可继承的函数定义为原型。几乎你会使用'prototype'关键字进行oop行为。