0
私は組み込み可能なjavascriptウィジェットを構築しようとしています。次の(例)はscriptタグに含まれています。組み込み可能なjavascriptウィジェットのプロトタイプと関数がどのように通信できますか?
(function (window) {
function TestFunction(params) {
console.log("init");
this.someVal = "ThisVal";
}
TestFunction.prototype.protoFunc = function() {
return "Hello " + this.someVal;
};
function hello() {
return eval("TestFunction.protoFunc();");
}
}(window));
let test = TestFunction({});
を次のように私は、その後
test.protoFunc();
こんにちはThisVal
を入力した場合、私はウィジェットをインスタンス印刷されます。しかし、hello関数が起動すると、それはTestFunction.protoFunc is not a function
というエラーをスローします。 hello()
関数がTestFunction.prototype.protoFunc
関数を起動する方法はありますか?
ねえジェイソンは、応答していただきありがとうございます。手元にあるシナリオに少し近づくように質問を更新しました - 評価を使用しようとしています... "静的な"機能が実行可能かどうかはわかりません。このウィジェットは、インスタンス化されたときにパラメータで異なる値をとり、ウィジェットが使用されるときに変更されます。 'this.someVal =" ThisVal ";'はthis.someVal = "covfefe"; 'になります。これは、ウィジェット外かウィジェットコード内からです。 – user714852
@ user714852 'this'はオブジェクト内でのみアクセス可能です。それ以外の場合は、静的に使用してください。最初のシナリオを少し更新して、すべてのオブジェクトベースにしました。通常、class internとexternの間で通信するためにsetterまたはgetterを使用します。それはデータのカプセル化を意味します –