es6用括号声明一个函数

时间:2016-11-25 12:52:59

标签: javascript

我想用简短的synthax声明以下函数,但是我想回到一个错误,说 " VM831:9 Uncaught TypeError:Person不是构造函数(...)&# 34; 我需要写函数吗?

var Person = () => {
 this.age = 0;

 this.set = () => {
    this.age++; 
   }
 }

 var p = new Person();

2 个答案:

答案 0 :(得分:2)

箭头功能使用" lexical" class Person { constructor(age) { this.age = age; } } ,即它们始终从当前范围继承this,而不是this运算符创建的范围。

因此,它们不能用作构造函数。

答案 1 :(得分:1)

一个函数不能有构造函数。所以请改用ES6类。

<html>
<body>

<div id="myButton" style="width: 30%; background-color: red; color: white;">CONFIRM</div>

<script>
document.getElementById('myButton').onclick = function(e) {
  alert(e.target);
};
</script>

</body>
</html>