我的打字稿代码:
export class File {
isOpenEnabled() {
return false;
}
openClicked() {
debugger;
}
}
define([], function () {
return {
handler: new File()
};
});
变成了:
define(["require", "exports"], function(require, exports) {
var File = (function () {
function File() {
}
File.prototype.isOpenEnabled = function () {
return false;
};
File.prototype.openClicked = function () {
debugger;
};
return File;
})();
exports.File = File;
define([], function () {
return {
handler: new File()
};
});
});
为什么插入原型?
谢谢 - 戴夫
答案 0 :(得分:2)
javascript中的函数是对象。
例如:
function MyClass () {
this.MyMethod= function () {};
}
每次创建MyClass
的新实例时,都会创建MyMethod
的新实例。
更好的方法是将函数MyMethod
添加到MyClass
:
MyClass.prototype.MyMethod = function(){};
这样,无论您创建了多少MyClass
个实例,都只会创建一个MyMethod
。
回到你的问题我认为打字稿正在对你在File
类中定义的方法进行这种优化。
答案 1 :(得分:1)