Javascript 有人告诉我,有时不使用“()”就可以调用无需返回的函数,对吗?

Javascript 有人告诉我,有时不使用“()”就可以调用无需返回的函数,对吗?,javascript,jquery,Javascript,Jquery,一些jquery代码如下: $("#buy_price").blur(function(){ price_num; }); $("#buy_num").blur(function(){ price_num; }); function price_num() { var price = $("#buy_price").val(); var num = $("#buy_num").val(); $("#buy_result").html(price*num

一些jquery代码如下:

$("#buy_price").blur(function(){
    price_num;
});

$("#buy_num").blur(function(){
    price_num;
});

function price_num() {
    var price = $("#buy_price").val();
    var num = $("#buy_num").val();
    $("#buy_result").html(price*num);
};

谁能告诉我这是正确的还是不确定的吗?

最好用这种方式:

$("#buy_price, #buy_num").blur(price_num);
简明扼要

因为price_num本身就是一个函数,所以您可以在绑定事件的回调函数中调用它,或者您必须在其中插入括号:

没有

如果要调用函数,可以:

使用 指示另一个函数调用它。 返回值是无关的

在本例中:

$("#buy_price").blur(function(){
    price_num;
});
当模糊事件发生时,另一个函数将调用匿名函数 根本不会调用price_num函数,因为这两个条件都不适用 但是,如果您要:

$("#buy_price").blur(price_num);

当模糊事件发生时,另一个函数将调用price_num。

这并不完全正确。告诉您的人可能被使用新操作符创建对象的特定方式弄糊涂了

这是有效的,并且这两条语句都将按预期创建对象:

var a = new SomeFunction();
var b = new SomeFunction;
但是,您不能这样调用函数,因为您只是将函数返回到no-where

myFunction; // Does nothing
和这些一模一样

42;
"Jsjsknsdjdj";
4 == 8;
所有这些都被忽略,因为它们的值没有分配给任何东西


我建议您始终使用,因为在阅读代码时,即使在创建对象时,也会清楚地表明正在进行函数调用。

不,您必须补充一点,编译器知道它是一个被调用的函数B,如果是这样的话。。。为什么要调用这样的函数?
42;
"Jsjsknsdjdj";
4 == 8;