/*
构造函数与class
*/
// 构造函数的方式
function Point(x,y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function(){
return '('+ this.x + this.y +')';
}
var p = new Point(1,2);
// class,es6的类,完全可以看做构造函数的另一种写法
class Point1 {
constructor(x,y) {
this.x = x;
this.y = y;
}
toString() {
return '('+ this.x + this.y +')';
}
}
console.log(typeof Point1) // function
console.log(Point1.prototype.constructor) // true
// class的类使用方式也是直接对类使用new命令
class Bar {
doStuff(){
console.log('stuff');
}
}
var b = new Bar();
b.doStuff() // 'stuff'
// 构造函数的prototype属性,在es6的类上面继续存在,即,类的所有方法都定义在类的 / // prototype属性上面
class Point2 {
constructor() {
// ...
}
toString() {
// ...
}
toValue() {
// ...
}
}
//等同于
Point2.prototype = {
constructor(){},
toString(){},
toValue(){}
}
console