Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 如何删除此错误类型错误:a.area不是eval的函数?_Javascript_Jquery_Ecmascript 6 - Fatal编程技术网

Javascript 如何删除此错误类型错误:a.area不是eval的函数?

Javascript 如何删除此错误类型错误:a.area不是eval的函数?,javascript,jquery,ecmascript-6,Javascript,Jquery,Ecmascript 6,你好 我正在努力学习ES6。但是我得到了一个错误,这个错误是类型错误:a.area不是eval的函数,为什么?实际上我是这样调用函数的 class Polygon { constructor(height, width) { this.height = height; this.width = width; } get area() { return this.calcArea() } calcArea() { return this.he

你好 我正在努力学习ES6。但是我得到了一个错误,这个错误是类型错误:a.area不是eval的函数,为什么?实际上我是这样调用函数的

class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  get area() {
    return this.calcArea()
  }

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

var a =new Polygon(10,20)
alert(a.area())
当我像这样使用a.calcArea()
时,它可以工作,但当我像这样使用a.area()时,它会出错吗?为什么?

a.area()
如果您有

area() {
但是如果你有

get area() {
您已经声明了一个属性getter,这意味着您将通过直接读取
.area
来获取区域

第一个声明具有函数值的类原型属性。 第二个声明了一个类原型属性,该属性具有访问器“getter”函数。试图访问
.area
将调用
area
函数,结果将是返回值

例如,对于
.area()
,要使用您的语法,如下所示:

get area(){
    return function(){
        return 4;
    };
}
然后你可以做
a.area()==4
,但是你也可以做

area(){
    return 4;
}
a.area()
如果您有

area() {
但是如果你有

get area() {
您已经声明了一个属性getter,这意味着您将通过直接读取
.area
来获取区域

第一个声明具有函数值的类原型属性。 第二个声明了一个类原型属性,该属性具有访问器“getter”函数。试图访问
.area
将调用
area
函数,结果将是返回值

例如,对于
.area()
,要使用您的语法,如下所示:

get area(){
    return function(){
        return 4;
    };
}
然后你可以做
a.area()==4
,但是你也可以做

area(){
    return 4;
}
a.area()
如果您有

area() {
但是如果你有

get area() {
您已经声明了一个属性getter,这意味着您将通过直接读取
.area
来获取区域

第一个声明具有函数值的类原型属性。 第二个声明了一个类原型属性,该属性具有访问器“getter”函数。试图访问
.area
将调用
area
函数,结果将是返回值

例如,对于
.area()
,要使用您的语法,如下所示:

get area(){
    return function(){
        return 4;
    };
}
然后你可以做
a.area()==4
,但是你也可以做

area(){
    return 4;
}
a.area()
如果您有

area() {
但是如果你有

get area() {
您已经声明了一个属性getter,这意味着您将通过直接读取
.area
来获取区域

第一个声明具有函数值的类原型属性。 第二个声明了一个类原型属性,该属性具有访问器“getter”函数。试图访问
.area
将调用
area
函数,结果将是返回值

例如,对于
.area()
,要使用您的语法,如下所示:

get area(){
    return function(){
        return 4;
    };
}
然后你可以做
a.area()==4
,但是你也可以做

area(){
    return 4;
}

因为您将函数定义为
get area(){}
,这实际上是在对象上定义getter的方法

所以你不需要叫它

说这个

alert(a.area)
而不是

alert(a.area())


引用()

,因为您将函数定义为
get area(){}
,这实际上是在对象上定义getter的方法

所以你不需要叫它

说这个

alert(a.area)
而不是

alert(a.area())


引用()

,因为您将函数定义为
get area(){}
,这实际上是在对象上定义getter的方法

所以你不需要叫它

说这个

alert(a.area)
而不是

alert(a.area())


引用()

,因为您将函数定义为
get area(){}
,这实际上是在对象上定义getter的方法

所以你不需要叫它

说这个

alert(a.area)
而不是

alert(a.area())


References()

为什么面积是函数?它不是属性?@user944513:函数也可以是属性。属性只是对象的“条目”。属性的值可以是任意的。它可以是数字、字符串、对象甚至函数。但是,
get
创建一种特殊类型的属性,即“访问器属性”,其值由您提供的函数计算。在使用前,了解更多关于
get
(参见MDN)的信息。为什么区域是函数?它不是属性?@user944513:函数也可以是属性。属性只是对象的“条目”。属性的值可以是任意的。它可以是数字、字符串、对象甚至函数。但是,
get
创建一种特殊类型的属性,即“访问器属性”,其值由您提供的函数计算。在使用前,了解更多关于
get
(参见MDN)的信息。为什么区域是函数?它不是属性?@user944513:函数也可以是属性。属性只是对象的“条目”。属性的值可以是任意的。它可以是数字、字符串、对象甚至函数。但是,
get
创建一种特殊类型的属性,即“访问器属性”,其值由您提供的函数计算。在使用前,了解更多关于
get
(参见MDN)的信息。为什么区域是函数?它不是属性?@user944513:函数也可以是属性。属性只是对象的“条目”。属性的值可以是任意的。它可以是数字、字符串、对象甚至函数。但是,
get
创建一种特殊类型的属性,即“访问器属性”,其值由您提供的函数计算。在使用之前,请了解有关获取的更多信息(请参见MDN)。获取区域()是属性吗?或者函数?@user944513一切都是一个属性,只是属性可以存储值,或者自动调用函数来获取值(这就是您试图使用的)。get area()是属性吗?还是功能?@user944513一切