1

TypeScriptを使用して便利なJavaScriptクラスの1つを書き直そうとしています。私のJavaScriptクラスでは、プライベートフィールドを実装するためにクロージャ変数selfを使用しています。onkeypressたとえば、イベントの呼び出し元とクラスの現在のインスタンスを知ることが重要なイベントハンドラーで役立ちます。

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の構文なしで、クラスのすべてのメソッドで使用できるクロージャ変数を作成し、JavaScriptの方法で真のプライベートメンバーを作成する方法を見つけることができません。this.self

4

2 に答える 2

1

試す

 MyClass.prototype.onclickForHolder =(ev:Event) =>this.DoUsefullactions(this,ev);
于 2012-10-26T16:36:18.393 に答える