我正在制作一个迷你 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
应该检索字符串。
提前致谢。