() 关于ES6中class类的一些疑问

关于ES6中class类的一些疑问

RT

之前直接用构造函数模拟类是这样的:

//ES5.js
function Personname,age{ this.name=name; this.age=age;
}

1、这个Person构造函数本身用于模拟类。
可以添加类方法:

Person.classMethod=function{cosole.log我是一个类方法;}

2、定义Person产生了一个原型对象Person.prototype,原型对象的constructor指向Person自己。

现在使用ES6的class

//ES6.js
class Person{ constructorname,age{ this.name=name; this.age=age;
}
fn1{ return `我是${this.name},今年${this.age}岁.`;
}
}

疑问:

1、class Person里面的construccor跟ES5.js中的构造函数function Person{…}是一回事么?这个外面套一层class Person有什么意义?

2、class Person里的fn1是原型上的方法Person.prototype.fn1?还是等同于Person.classMethod类方法?

好吧。。自己解决了。。

//modulePerson.js
//ES6中class类
class Person {
constructorname, age {
//constructor等同于function Personname,age{}构造函数 this.name = name; this.age = age; this.init; //构造函数中调用init,省去【实例】调用
}
init { this.say; //调用另一个原型方法say;
}
say { //此处say方法等同于Person.prototype.say=function{}原型方法, console.log`我是${this.name},我今年${this.age}岁了。`;
}
}
export { Person }; //entry.js
import { Person } from ./Person.js;
new Person小明, 20; //实例化并传参数

不过有个新的问题。。
写插件的时候不想用jQuery的$.extend合并,用了ES6的 Object.assign;

this.config = Object.assign{}, defaults, settings

ES6转ES6编译出来的这个:

if !Object.assign { Object.definePropertyObject, "assign", { enumerable: false, configurable: true, writable: true, value: functiontarget, firstSource { "use strict"; if target === undefined || target === null throw new TypeError"Cannot convert first argument to object"; var to = Objecttarget; for var i = 1; i < arguments.length; i++ { var nextSource = arguments[i]; if nextSource === undefined || nextSource === null continue; var keysArray = Object.keysObjectnextSource; for var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++ { var nextKey = keysArray[nextIndex]; var desc = Object.getOwnPropertyDescriptornextSource, nextKey; if desc !== undefined && desc.enumerable to[nextKey] = nextSource[nextKey]; } } return to; } };
};

在IE8上报错。说不支持语法。。。哪位知道是怎么回事?拜谢解答、、

发表评论

电子邮件地址不会被公开。 必填项已用*标注