[英]How can I set javascript function in global?
我想在全局js中设置函数。 所以它可以从任何地方调用
我有这个功能:
$(function () {
function formatCurrency(input) {
return input.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
}
});
我把功能放在
C:\\ XAMPP \\ htdocs中\\ mysystem \\资源\\资产\\ JS \\ main.js
然后在此添加<script src="{{URL::asset('/resources/assets/js/main.js')}}"></script>
C:\\ XAMPP \\ htdocs中\\ mysystem \\资源\\意见\\布局\\ app.blade
当执行时,在控制台上存在如下错误:
GET http://mysystem.dev/resources/assets/js/main.js 404(未找到)
我该如何解决?
您应该将函数定义为窗口对象的方法。
window.formatCurrency = function(input) {
return input.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
}
另一种更干净的方法是将函数定义为称为Utils
的对象的方法,如下所示:
var Utils = (function(){
function formatCurrency(input){
return input.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
}
return {
formatCurrency: formatCurrency
}
}());
这样做不会污染全局名称空间。 您将在全局名称空间中仅定义一个称为Util的变量,该变量将包含一个对象,该对象包含可以由应用程序的其他部分使用的有用功能。 因为它是您看不到后一种方法的好处。 但是,您可以考虑如果要再使用3个函数,而自己又使用2个其他函数作为助手,情况会如何。 如果是这样的话,您的return语句还将包含另外3个函数,而我之前提到的2个函数根本不会被使用!
问题似乎是您使用的asset()
错误。
资产是指/public
的文件。
您应该编译/最小化用于生产的JS,并将其放在/public
某个位置,即/public/js/my.js
您可以这样定义全局函数
window.formatCurrency = function(input){
return input.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
}
并且您在ready函数($(function))中定义了函数,那么您也必须在ready函数中调用它。 因此,最好在就绪功能之外或在自调用功能中定义它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.