この「コンストラクター」定義の利点を誰かに説明してもらえますか?
var Tree = (function () {
function Tree(name) {
this.name = name;
}
return Tree;
})();
それ以外の
var Tree = function(name) {
this.name = name;
};
最初のバリアントは、TypeScript コンパイラによって生成されます。
この「コンストラクター」定義の利点を誰かに説明してもらえますか?
var Tree = (function () {
function Tree(name) {
this.name = name;
}
return Tree;
})();
それ以外の
var Tree = function(name) {
this.name = name;
};
最初のバリアントは、TypeScript コンパイラによって生成されます。
TypeScript の場合、基本クラスをキャプチャするための追加のクロージャもあります。
class Animal {
public run() {
console.log('running!');
}
}
class Giraffe extends Animal {
public run() {
super.run();
console.log('... and looking awkward');
}
}
放出する:
var Animal = (function () {
function Animal() {
}
Animal.prototype.run = function () {
console.log('running!');
};
return Animal;
})();
var Giraffe = (function (_super) {
__extends(Giraffe, _super);
function Giraffe() {
_super.apply(this, arguments);
}
Giraffe.prototype.run = function () {
_super.prototype.run.call(this);
console.log('... and looking awkward');
};
return Giraffe;
})(Animal);
すぐに呼び出される関数に渡される_super.prototype
パラメーター (ここ) を介して基底クラスを参照するために を使用していることに注意してください。Animal
追加のクロージャーがなければ、グローバル名前空間を汚染せずにその値を保存する場所はありません。