在Javascript中,如何重构一些重复的匿名函数?

发布于 2024-10-22 18:07:18 字数 436 浏览 1 评论 0原文

下面的代码是多余的——同一个匿名函数出现了三次。

我该如何重构它?

$(".operation").resizable({
create: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
resize: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
stop: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
})

The following code is redundant---the same anonymous function appears three times.

How do I refactor it?

$(".operation").resizable({
create: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
resize: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
stop: function(event, ui) {
    var width = $(".operation").width()
    $("#width span.text").text(width)
},
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

听风吹 2024-10-29 18:07:18

您可以使用局部变量:

     (function() {
       var f = function(event,ui) {
           var width = $(".operation").width()
           $("#width span.text").text(width)
       }
       $(".operation").resizable({
       create: f,
       resize: f,
       stop: f,
       })
    })()

好处是不会污染全局名称空间(全局对象)。

如果你不介意的话,你可以定义一个全局函数。

You can use a local variable:

     (function() {
       var f = function(event,ui) {
           var width = $(".operation").width()
           $("#width span.text").text(width)
       }
       $(".operation").resizable({
       create: f,
       resize: f,
       stop: f,
       })
    })()

the upside is that you do not pollute the global namespace (global object).

You can define a global function if you don't mind.

一念一轮回 2024-10-29 18:07:18

我会声明这个函数:

function setWidth(event, ui) {
    var width = $(".operation").width();
    $("#width span.text").text(width);
}

$(".operation").resizable({
    create: setWidth,
    resize: setWidth,
    stop: setWidth,
});

I would declare the function:

function setWidth(event, ui) {
    var width = $(".operation").width();
    $("#width span.text").text(width);
}

$(".operation").resizable({
    create: setWidth,
    resize: setWidth,
    stop: setWidth,
});
我要还你自由 2024-10-29 18:07:18

声明一个新函数

function xxx(event, ui) {
    var width = $(".operation").width();
    $("#width span.text").text(width);
}

然后将其设置为回调:

$(".operation").resizable({
    create: xxx,
    resize: xxx,
    stop: xxx
});

declare a new function

function xxx(event, ui) {
    var width = $(".operation").width();
    $("#width span.text").text(width);
}

then set it as the callback:

$(".operation").resizable({
    create: xxx,
    resize: xxx,
    stop: xxx
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文