gpt4 book ai didi

javascript - 为什么有必要将函数调用包装在函数体中

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:32 27 4
gpt4 key购买 nike

我经常在 JavaScript 中看到如下内容:

$("#sendButton").click(function() {
sendForm();
}

为什么需要将对 sendForm() 的调用包装在一个函数中?我认为这样做会更具可读性和更少的输入。

$("#sendButton").click(sendForm);

每种方法的优点/缺点是什么?谢谢!

最佳答案

通常有两种情况您希望使用前者而不是后者:

  1. 如果您需要在调用函数之前对参数进行任何后处理。

  2. 如果您在对象上调用方法,则使用第二种形式时作用域(this reference)会有所不同

例如:

MyClass = function(){
this.baz = 1;
};

MyClass.prototype.handle = function(){
console.log(this.baz);
};

var o = new MyClass();

$('#foo').click(o.handle);
$('#foo').click(function(){
o.handle();
});

控制台输出:

undefined
1

关于javascript - 为什么有必要将函数调用包装在函数体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com