【发布时间】:2011-01-22 10:35:49
【问题描述】:
嘿,我即将为我的 JavaScript 库重写核心文件,我正在寻找更好的方法来做所有事情。其中之一是我如何使括号可选,例如一些函数调用看起来像这样。
Spark('p').content('Hello, World');
还有其他类似的。
Spark.browser();
所以我有 Spark 函数的可选括号。我说这将是最好的方法是对的吗?
window.Spark = function(arg1, arg2) {
return {
fn: function() {
alert('run');
}
};
};
for(var f in Spark())
Spark[f] = Spark()[f];
Spark.fn();
Spark(true, false).fn();
这对我来说似乎是错误的,尽管这是我想出的唯一可行的方法。
【问题讨论】:
-
你想要完成什么?
-
哦,抱歉,正如我的示例所示,我需要使用带或不带括号的
Spark函数,我已经通过上述方法完成了此操作,但有没有更好、更清洁的方法。跨度> -
是的,但退一步说,实际要求是什么?如果你调用它并不重要,为什么
Spark是一个函数?如果你可以忽略它有论据的事实?您的解决方案不会使括号成为可选,它只是将调用Spark产生的对象的属性混合到Spark函数对象中,而没有参数。我很难找到一个合理的用例,而不是默认的Spark对象(可能是DefSpark甚至Spark.default)。 -
嗯,我不太确定。为什么要使括号可选?如果是这样,您可以在不附加大括号的情况下运行
Spark.browser函数,那么我认为您不走运。 -
不,我想让
Spark需要括号,而不是它的功能。
标签: javascript function object