使用TypeScript关闭JavaScript中的true private字段
我正试图用TypeScript重写一个有用的JavaScript类。 在我的JavaScript类中,我使用闭包变量self实现私有字段。 它在事件处理程序中很有用,例如onkeypress,了解事件的调用者和类的当前实例很重要使用TypeScript关闭JavaScript中的true private字段,javascript,closures,typescript,Javascript,Closures,Typescript,我正试图用TypeScript重写一个有用的JavaScript类。 在我的JavaScript类中,我使用闭包变量self实现私有字段。 它在事件处理程序中很有用,例如onkeypress,了解事件的调用者和类的当前实例很重要 var MyClass = function (valueHolder) { var self = this; this.valueHolder = valueHolder; MyClass.pr
var MyClass = function (valueHolder) {
var self = this;
this.valueHolder = valueHolder;
MyClass.prototype.DoUsefullactions = function (value) {
alert(value);
}
MyClass.prototype.onclickForHolder = function (e) {
var value = $(this).val(); //value from attached input
self.DoUsefullactions(value);
}
MyClass.prototype.GetSelf = function () {
return self;
}
this.valueHolder.onclick = this.onclickForHolder;
}
如果没有这个,我找不到如何使什么闭包变量对类的所有方法都可用。TypeScript中的self语法和JavaScript方式中的真正私有成员。有一个替代函数语法。只需使用:
MyClass.prototype.onclickForHolder = e => {
var value = $(e.target).val(); //value from attached input
this.DoUsefullactions(value);
}
这将引用外部的this,TypeScript将在后台添加一个self-type变量。这有一个替代函数语法。只需使用:
MyClass.prototype.onclickForHolder = e => {
var value = $(e.target).val(); //value from attached input
this.DoUsefullactions(value);
}
这将引用外部类型,而TypeScript将在后台添加一个自类型变量。试试看
MyClass.prototype.onclickForHolder =(ev:Event) =>this.DoUsefullactions(this,ev);
试一试
在构造函数中为原型分配属性不好。它会在每次构造函数调用中分配这个。谢谢,这只是一个例子,在构造函数函数中为原型分配属性是不好的。它会在每次调用构造函数时分配这个。谢谢,这只是个例子谢谢,我知道这个版本是用来解决问题的,我假设在这种情况下存在抽象的解决方案在类型脚本中谢谢,我知道这个版本是用来解决问题的,我假设在这种情况下存在抽象的解决方案,如果你能解释他为什么要尝试那样做,我将不胜感激。如果你能解释他为什么要尝试那样做,我将不胜感激。