私はミニ JavaScript ライブラリを作成しており、人々がカスタム関数を追加できるようにしようとしています。
現在の構文は次のとおりです。
$$.custom('alert', function(){alert(this._string)});
アラートをトリガーするには、次を使用します。
$$.string("Hi").alert();
問題は、this._string
間の文字列を返すことになっていますが()
(通常の関数ではそうです)、代わりに を返していundefined
ます。
これは、$$
オブジェクトのセットアップに使用するコードです。
var g = function (a) {
this._string = typeof a == "string" ? a : "undefined"
},
NumberPro = function (a) {
this._number = typeof a == "number" ? a : "undefined"
},
$$ = {
string: function (a) {
return new g(a)
},
number: function (a) {
return new NumberPro(a)
},
syntax: {
off: function () {
for (var j in k) {
String.prototype[j] = String.prototype[j] || k[j];
};
for (var j in l) {
Number.prototype[j] = Number.prototype[j] || l[j];
};
type = 'prototype';
},
on: function () {
for (var j in l) {
NumberPro.prototype[j] = NumberPro.prototype[j] || l[j]
}
for (var j in k) {
g.prototype[j] = g.prototype[j] || k[j]
}
type = '';
}
},
usePrototype: function (a) {
$$.syntax.off();
a();
$$.syntax.on();
},
custom: function(name, f){
k[name] = f();
for (var j in k) {
g.prototype[j] = g.prototype[j] || k[j]
}
type = '';
}
},
type = '',
Methods = $$;
「カスタム」の function...ink[name] = f()
は、k
残りの関数が格納されているオブジェクトです。for
ループを実行して、それぞれに$$.string
オブジェクトを与えます。
私がやりたいことはthis._string
、カスタム アラート関数で送信された関数に追加できるようにすることです。これは可能だと思いますが、これを機能させることができないようです。良い答えが得られるように、十分なコードを提供したいと思います。$$
カスタム関数では for を再度実行して、追加された関数にもオブジェクトを与えるので、私のやり方はうまくいくはずですがthis._string
、文字列を取得する必要があります。
前もって感謝します。