javascriptでクラスを定義する正しい方法はどれですか?javascriptでクラスを定義する
classキーワードを使用しています。 functionキーワードを使用して
var c = class {
constructor(){}
}
それとも
。
var c = function(){
}
私はいくつかの記事を見て、私は新しい方法をクラスのキーワードをされ使用して、関数キーワードを使用すると、古い方法だと思います。
javascriptでクラスを定義する正しい方法はどれですか?javascriptでクラスを定義する
classキーワードを使用しています。 functionキーワードを使用して
var c = class {
constructor(){}
}
それとも
。
var c = function(){
}
私はいくつかの記事を見て、私は新しい方法をクラスのキーワードをされ使用して、関数キーワードを使用すると、古い方法だと思います。
単純に行く:
class myClass {
constructor(foo, bar) {
this.foo = foo;
this.bar = bar;
}
/* Whatever else */
}
これは...あなたはES6を書きたい
MDNを検討している:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes
ES5は、ここであなたが望むかもしれない方法でhttps://github.com/addyosmani/es6-equivalents-in-es5#classesから取った例なら問題に取り組む
ES6:
class Hello {
constructor(name) {
this.name = name;
}
hello() {
return 'Hello ' + this.name + '!';
}
static sayHelloAll() {
return 'Hello everyone!';
}
}
class HelloWorld extends Hello {
constructor() {
super('World');
}
echo() {
alert(super.hello());
}
}
var hw = new HelloWorld();
hw.echo();
alert(Hello.sayHelloAll());
ES5(概算):
function Hello(name) {
this.name = name;
}
Hello.prototype.hello = function hello() {
return 'Hello ' + this.name + '!';
};
Hello.sayHelloAll = function() {
return 'Hello everyone!';
};
function HelloWorld() {
Hello.call(this, 'World');
}
HelloWorld.prototype = Object.create(Hello.prototype);
HelloWorld.prototype.echo = function echo() {
alert(Hello.prototype.hello.call(this));
};
var hw = new HelloWorld();
hw.echo();
alert(Hello.sayHelloAll());
それは二つだけであるhttp://www.ecmascript.org/
、使用したいのECMAScript標準に依存関数、そして最初のものはエラーのようです? – adeneo
ほとんどの主要なブラウザ(IE11、たとえば、Windows 7で利用可能なIEの最新バージョン)をサポートする予定の場合は、 'class'を使用しないでください。それはうまくサポートされていません。これはECMAScript 6で導入されました。 – blex
[classes on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)で読んでください。新しいもので、サポートされていませんすべてのブラウザはまだ – adeneo