这是什么JavaScript编码风格?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了这是什么JavaScript编码风格?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2287字,纯文字阅读大概需要4分钟。
内容图文
![这是什么JavaScript编码风格?](/upload/InfoBanner/zyjiaocheng/808/7f178e29091346bc9ad976ccfc098314.jpg)
我正在努力维护具有以下编码风格的ASP.NET MVC应用程序.该观点有:
<script type="text/javascript">
$(document).ready(function() {
SAVECUSTOMERS.init();
});
</script>
这里包含一个js文件:
var SAVECUSTOMERS = (function() {
init = function () {
$("#saveCust").bind("click", OnSave);
$("#cancel").bind("click", OnCancel);
},
OnSave= function() {
//Save Logic;
},
OnCancel = function() {
//Cancel logic;
}
return { init: init };
})();
>这是JS编码风格的最佳实践吗?意图是非突兀的JS吗?
>什么是SAVECUSTOMERS?我知道有不同的方法在javascript中创建类(根据这个link),但这种风格不属于列出的任何类别
>我在哪里可以找到有关这种JS编码风格的更多信息?
解决方法:
1)使用$(document).ready(或来自另一个库的类似函数)函数被认为是JavaScript中的标准实践.首先,它确保您的JavaScript在已完成评估/构建DOM的页面上执行.并且它还在识别DOM实际上准备就绪时抽象出一些浏览器实现的不一致性.但我假设你主要是指第二个代码块.
你看到的是,SAVECUSTOMERS被分配了一个自动执行匿名函数的结果.这样做有几个原因,最常见的是能够控制匿名函数内的函数和数据的范围和“命名空间”.这是因为JavaScript具有词法范围,而不是块级范围.
在JavaScript中使用这些自调用函数的做法非常普遍
但是代码本身有几个问题.变量init,OnSave和OnCancel被声明为全局变量(因为省略了var关键字).这在很大程度上违背了将它们包装在自我调用函数中的目的.此外,该函数的内容使用对象分配语法和标准表达式语法的混合,这将导致语法错误.
此外,通过仅返回init函数,onSave和onCancel函数已通过使用闭包被有效地“隐藏”或变为“私有”.这有助于保持名称空间的清洁和封装.
如果我正在编写这段代码(这里有一些个人的贡献,有几种方法可以实现simliar),那么它看起来像这样:
var SaveCustomers = (function($) {
var init = function () {
$("#saveCust").bind("click", onSave);
$("#cancel").bind("click", onCancel);
};
var onSave = function() {
//Save Logic;
};
var onCancel = function() {
//Cancel logic;
}
return { init: init };
})(jQuery);
关于上述的一些注意事项:
>我使用var关键字声明变量.这使它们的范围保持在本函数的本地(你也可以在技术上使用命名函数声明)
>我将jQuery作为自调用函数中的参数传递,并将其作为函数调用中的参数赋值给$.这保护了函数内部的$变量,以便我们知道它引用了jQuery,并且还没有被也使用$的二级库所驱动.
2)SAVECUSTOMERS是一个基本的JavaScript对象,它有一个名为’init’的属性,其值是一个函数,由执行中的init声明定义.
3)不确定如何回答这个问题 – 理解JavaScript最佳实践的最佳选择是阅读已知具有高质量的其他JavaScript代码,例如jQuery源代码,Prototype或Underscore等.
内容总结
以上是互联网集市为您收集整理的这是什么JavaScript编码风格?全部内容,希望文章能够帮你解决这是什么JavaScript编码风格?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。