【发布时间】:2010-10-14 03:05:50
【问题描述】:
在 JavaScript 中有没有一种方法可以调用不带括号的函数?
例如在 jQuery 中:
$('#wrap').text("asdf"); 会起作用,$.ajax(ajaxOptions); 也会起作用
我正在将一个函数(类)映射到window.$,该函数具有一组我希望能够在带或不带括号的情况下调用的函数。喜欢 jQuery。
这是一个代码示例:
function Test(asdf) {
this.test = function(testVar) { return testVar + ' asdf'; }
}
我将Test() 映射到$:
window.$ = new Test();
我必须像这样调用函数(类):
$('asfd').test('ASDF');
但我希望能够这样称呼它:
$.test('asdf');
【问题讨论】:
-
您能否举例说明这些“不带括号”的外观,或者您希望如何称呼它们?
-
你的例子,因为没有更好的词:“糟透了”。在这两种情况下,您都在调用带括号的函数
-
你知道吗,我不想这样做 b/c ur new,但是 -1。这是一个问得不好且演示得不好的问题。
-
这个问题的定义仍然很差,以至于难以理解。
Test是一个构造函数,所以new Test()创建一个对象。在示例中,新对象不是函数,因此$不是函数。$.test('asdf')工作正常;将失败的是$('asfd').test('ASDF')。此外,JS 本身没有类,因此“类”只有在您创建了自己的使用类的继承方案时才有意义。
标签: javascript