在两个JS文件之间共享代码

4
我有以下代码(使用MVC5项目),我需要在两个不同的JS文件中使用它。最好的方法是什么?
$("#act").prop("disabled", "disabled");
$("form").change(function () { 
    $("#act").removeAttr("disabled");
    $("#btn").prop("disabled", "disabled");
});
$("input").keyup(function () { 
    $("#act").removeAttr("disabled");
    $("#btn").prop("disabled", "disabled");
});

如果是大量的代码,请将其创建为插件。如果它是库样式的函数,请将其放入库中,并使用适当的参数调用以选择目标等。如果只是一小段代码(几行),那就不必担心了 :) - iCollect.it Ltd
@TrueBlueAussie-谢谢 :) 我想了解一般情况下的情况,例如如果我有大量的代码...我正在使用MVC5项目...你能提供一个例子吗... - 07_05_GuyT
对于一个大型的MVC 5项目,我建议也使用TypeScript。这样可以更容易地以结构化的方式使用大量的JS。再加上MVC“捆绑”来产生高效的JS下载。所有这些都取决于你的代码是做什么/是什么,以及如何将其拆分。你没有给出太多细节。 - iCollect.it Ltd
在MVC项目中,您有一个脚本文件夹,在那里我有两个JS文件,它们在某些情况下应该使用相同的代码,有一种简单的方法可以重用代码,而不是复制它... - 07_05_GuyT
1个回答

2
也许这不是最佳方法,但在简单的项目中应该可以正确工作。创建名为common.js的第一个文件,并编写以下代码:
MyApp = {};
MyApp.Common = {};
MyApp.Common.initializeForms = function() {
    $("#act").prop("disabled", "disabled");
    $("form").change(function () { 
        $("#act").removeAttr("disabled");
        $("#btn").prop("disabled", "disabled");
    });
    $("input").keyup(function () { 
        $("#act").removeAttr("disabled");
        $("#btn").prop("disabled", "disabled");
    });
}

MyApp是你的应用程序的命名空间。Common 命名空间用于存储模块之间的通用函数。

在使用此代码的地方包含此文件,并通过编写以下内容进行调用:

MyApp.Common.initializeForms();

显然,还有更专业的方法来实现这一点,例如使用RequireJS或其他依赖注入库,但是这种方法也可以工作,特别是如果您将整个代码捆绑在一个文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接