用 jquery 绑定和解绑事件监听器都是非常简单的。但是当你为一个元素的一个事件绑定了多个监听器时,怎样精确地解绑其中一个监听器?我们需要了解一下事件的命名空间。看下面这段代码:$(“#element”).on(“click”, doSomething).on(“click”, doSomethingElse);像上面这样绑定事件监听器,当元素被点击时,doSomething 和 doSomethingElse 这两个监听器都会被触发。这是使用 jQuery 的一个便利之处,可以随时给元素的同一个事件...
JS 命名规范 命名规范是很有必要的,可增强代码的可读性,一眼就能看懂要表达的意思,规范就是符合规则,使代码有利于后期维护,也能很大程度的提高开发效率。一个正常的网站有很多 JS 代码,如果在编写的过程中,不遵循某种规则,那么写到后面自己都看不懂自己写的什么,这是很麻烦的一件事,所以要在平时的练习过程中,养成良好的编写代码的习惯。一般都采用匈牙利命名法或者驼峰命名法。 匈牙利命名法的原则:变量名=属性...
全局变量应该由有系统范围相关性的对象们保留,并且它们的命名应该避免含糊并尽量减少命名冲突的风险。在实践中,这意味着你应该避免创建全局对象,除非它们是绝对必须的。不过,恩,这些你早都知道了……所以你对此是怎么做的?传统方法告诉我们,最好的消除全局策略是创建少数作为潜在模块和子系统的实际命名空间的全局对象。我将探索几种有关命名空间的方式,并以我基于 James Edwards 最近的一篇文章得到的一个优雅、安全和灵活...
隐式的全局变量局部变量变量声明提升(Hoisting)名称解析顺序命名空间结论尽管 JavaScript 支持一对花括号创建的代码段,但是并不支持块级作用域; 而仅仅支持 函数作用域。function test() { // 一个作用域for(var i = 0; i < 10; i++) { // 不是一个作用域// count}console.log(i); // 10 }译者注:如果 return 对象的左括号和 return 不在一行上就会出错。(注意: 如果不是在赋值语句中,而是在 return 表达式或者函数参数中,...
通常我们的团队中,开发人员在Java语言层面具备相当的技术素养,经验丰富,而且有许多成熟的、合理的规约,类型繁多的代码隐患检查工具,甚至在团队间还有计划内的评审和飞检。但是前端的代码不似后台,就像一个没人疼的孩子,不仅仅容易被低估、被轻视,导致质量低劣、可维护性差,技能上,更缺少优秀的前端开发人员。JavaScript是前台代码中重要组成部分,随着版本的延续,产品越做越大,JavaScript层面的重构,需要在整个过程中...
注:好久没写了,今天把我在公司内网写的文章拷一份,出来露露脸,刚转Web开发,所以开始学javascript! 在引入命名空间之前,一个令开发人员头疼的问题就是如何防止函数名/类名和其他人的冲突,在一个公司内部项目组之间可以通过命名预定(比如加前缀等)解决这个问题,但是把视线放到整个软件开发领域,在当今协作开发相当盛行的时代,这个问题却依然存在。在使用多个第三方框架或类库的时候,你唯一能作的就是祈祷它们的命名不要...
JavaScript 代码一般最常见的语法格式就是定义函数 function xxx(){/*code...*/},经常有这样的一大堆函数定义。函数名很容易发生冲突,特别是引入多个js文件时,冲突的情况尤为明显。因此也就有引入命名空间的必要。 Javascript 本身没有命名空间的概念,需要用对象模拟出来。 比如定义一个命名空间的类,用于创建命名空间: function NameSpace(){ } 这是一个构造函数,但却不做任何事情,再来下面和评论有关的代码: var commen...
最近朋友使用了form的一个表单命名为关键词引起了无法reset和提交.原来是这个问题“调用document.forms[0].reset()报错?”,马上问他:“页面有表单吗?”,回答:“有”。“你alert一下document.forms[0]”,“弹出object”。那就怪了,form啥时候没有reset方法了? 过去看了一下,alert(document.forms[0].reset)发现弹出object这就不对对了,应该是弹出reset本地方法的。搜索一下reset发现原来的reset按钮name为reset,怪不得出...
最近看Ext源代码,看到了其实现命名空间函数的实现方法: Ext NameSpace实现代码: 代码如下: namespace : function(){ var a=arguments, o=null, i, j, d, rt; for (i=0; i d=a[i].split("."); rt = d[0]; eval(if (typeof + rt + == "undefined"){ + rt + = {};} o = + rt + ;); for (j=1; j<d.length; ++j) { ...
当在同一个网页里引入10多个js文件之后, 各js中的同名函数就很容易冲突了。 比如xxx库里写了个addCssStyle方法, yyy类库里也写了个addCssStyle方法, 而这两个方法的具体实现又有一定差别。 那么同时引用这两个组件的时候,函数冲突之后导致页面效果发生变化, 调试和修改都是非常痛苦的,如果为了避免冲突, 而放弃引用一些优秀的组件,那更是让人郁闷的事情。 为此,在封装javascript组件库的时候,请使用命名空间来避免冲突。...
1.自动转到命名记 代码如下: window.location.hash = "#bottom"; 底部 2.自动定位到指定高度 代码如下: //function scrollwin() { //document.body.scrollTop var scroll_y = parseInt(1000); window.scrollBy(0, scroll_y); //} // JavaScript教程/参考手册 JavaScript热搜 vue2.0 移动端实现下拉刷新和上拉加载更多的示例解决vue-router中的query动态传参问题解决使用vue.js路由后失效的问题微信小程序实现换肤功...
为了防止发生命名冲突,可以建立自己的代码库。 就想 Js代码 代码如下: ziggy_js=function(){} ziggy_js.ui=function(){} ziggy_js.ui.alerts=function(){} ziggy_js.ui.alerts.showErrorAlert=function(){ alert("An error occurred"); } ziggy_js.ui.alerts.showErrorAlert(); //以在其中定义类 ziggy_js.ui.alerts.messageDisplayer=function(inMsg){ this.msg=inMsg; this.toString=function(){ return "msg="+this.msg; } } ...
JScript 是一种区分大小写的语言。 第一个字符必须是一个 ASCII 字母(大小写均可),或一个下划线(_)。注意第一个字符不能是数字。 后续的字符必须是字母、数字或下划线。 变量名称一定不能是 保留字。 下面给出合法变量名称的一些示例: _pagecount Part9 Number_Items 下面给出无效变量名称的一些示例: 99Balloons // 不能以数字开头。Smith&Wesson // “与”符号(&)字符用于变量名称是无效的。
JavaScript变量匈牙利命名法 匈牙利命名法语法: 变量名=类型+对象描述 类型指变量的类型 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解。 提示: 虽然JavaScript变量表面上没有类型,但是JavaScript内部还是会为变量赋予相应的类型。 提示: 匈牙利命名法是一位微软程序员发明的,多数的C,C++程序都使用此命名法。 JavaScript变量匈牙利命名类型JavaScript变量起名类型 变量命名前缀Array 数组...
在小项目中对于JavaScript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维护起来都很麻烦。对于这种情况我们就需要使用面向对象的思想来开发JavaScript。那我们就这样作罢: 对于一个项目,首先要有个命名空间。所以我们首先要做的是定义一...