实例如下: var LILL ={};//创建全局 (function (wd) { function $(id) { return document.getElementById(id); } function alertNodeName(id) { alert($(id).nodeName); }var name = "aaaa"; function showName()//函数 { alert(name); } alert(wd); wd[test] = {};//创建对象 wd[test][debuglog] = alertNodeName; wd[test][name] = name; showName(); })(LILL);之后引用写好的js文件,然后在html页面调用<script>window.onload=...
namespace即“命名空间”,也称“名称空间” 、”名字空间”。JavaScript不像C#或Java,有专门的namespace和package语法支持,当JS复杂到一定程度,尤其是引用大量的第三方JS框架和类库之后,命名冲突就会成为一个严重的问题,因此使用JS自己的变通方式建立命名空间很重要。 命名空间有助于减少程序中所需要的全局变量的数量,并且同时有助于避免命名冲突或过长的名字前缀。 关于命名空间的例子:/** * 创建全局对象MYAPP * @modul...
前些天朋友让我帮他解决一个页面中jquery特效的兼容性问题,觉得这是一个很容易忽略也很重要的一点,特在此记录一下。朋友给的页面中用到了三个特效,其中两个特效可以显示,第三个没有效果。通过查看引用的js文件,我发现页面中不光引入了jquery.js,还引入了一个名为prototype.js的文件。 这个prototype.js之前未曾听说过,特意在百度上搜了一下,原来它也是一个js类库,功能和jquery差不多,而且很强大。通过一点点的排查,我发...
用 jQuery 绑定和解绑事件监听器都是非常简单的。但是当你为一个元素的一个事件绑定了多个监听器时,怎样精确地解绑其中一个监听器?我们需要了解一下事件的命名空间。 看下面这段代码: $(“#element”).on(“click”, doSomething).on(“click”, doSomethingElse); 像上面这样绑定事件监听器,当元素被点击时,doSomething 和 doSomethingElse 这两个监听器都会被触发。这是使用 jQuery 的一个便利之处,可以随时给元素的同一个...
javascript函数命名的三种方式及区别介绍 第一代码如下: function fn(val1,val2) { alert(val1+val2); } fn(1,2);第二代码如下: var fn=function() { alert(val1+val2); } fn(1,2);第三代码如下: var fn=new Function("alert(val1+val2)"); fn(1,2); 上面三种方式逻辑上是等价的,但是还是有点小区别:区别一:例一中的函数会在代码执行以前被加载到作用域中,而例二则是在代码执行到那一行的时候才会有定义;区别二:函数声明会给...
本文实例分析了js命名空间写法。分享给大家供大家参考,具体如下: 很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还是有必要会 html部分: <div id="div1">111</div> <div id="div2">现实</div> <div id="div3">层</div> <div class="tab"><ul class="tab_nav clearfix"><li class="active">1</li><li>2</li><li>3</li></ul><div class="tab_main"><div style="display: block">内容1</div><div>内...
本文实例讲述了javascript实现相同事件名称,不同命名空间的调用方法。分享给大家供大家参考。具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head><title></title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script><script type="text/javascript">$(function(){$("div").bind("click",function(){$("bod...
在 C++ 和 C# 中,命名空间用于尽可能地减少名称冲突。例如,在 .NET Framework 中,命名空间有助于将 Microsoft.Build.Task.Message 类与 System.Messaging.Message 区分开来。JavaScript 没有任何特定语言功能来支持命名空间,但很容易使用对象来模拟命名空间。如果要创建一个 JavaScript 库,则可以将它们包装在命名空间内,而不需要定义全局函数和类,如下所示:var MSDNMagNS = {}; MSDNMagNS.Pet = function(name) { // code...
本文实例讲述了jquery利用命名空间移除绑定事件的方法。分享给大家供大家参考。具体分析如下: 最近研究jquery,发现了一个简单移除绑定事件的方法,命名空间。 例子很简单。 这里我绑定了三个事件,分别是click,mouseover和dblclick事件 其中click和mouseover事件我加入了命名空间,而dblclick没有加入命名空间。 利用一个button移除了绑定的事件。 这样避免了重复的使用bind和unbind方法,让你的代码看起来更简洁明了。 代码如...
本文实例讲述了js关于命名空间的函数。分享给大家供大家参考。具体如下: var MYAPP = MYAPP || {}; MYAPP.namespace = function(ns_string){var parts = ns_string.split(.);var parent = MYAPP;var i=0;if(parts[0]==="MYAPP"){parts = parts.slice(1);}for(i=0 ; i<parts.length; i++){if(typeof parent[parts[i]]==undefined){parent[parts[i]]={};}parent = parent[parts[i]];}return parent; } var module2= MYAPP.namespace...
在之前的介绍中,我们已经知道 Javascript 没有块级作用,只有函数级作用域。代码如下: function test() { // a scope for(var i = 0; i < 10; i++) { // not a scope // count } console.log(i); // 10 }Javascript 中也没有显示的命名空间,这就意味着一切都定义在全局作用域中。每一次引用一个变量时,Javascript 会往上遍历整个全局作用域直到找到该变量。如果遍历完整个全局作用域仍然没有找到该变量,则...
最近遇到个问题,同时引用了jquery库和另外一个js库。当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了。因为许多JavaScript 库使用$作为函数或变量名,jquery也一样。其实$只是jquery的一个别名而已,假如我们需要使用jquery 之外的另一js库,我们可以通过调用 $.noConflict() 向该库返回控制权。下面是收集到解决这一问题的五种方案,总有一种你会用得上的。 例一:代码如下: <!DOCTYPE html PUBLIC "-...
我们经常通过匿名函数(Anonymous function)来写回调。 简单来讲匿名即没有名字的函数,一般都立即执行。但是它与命名函数(有名字的函数)的性能如何呢? 我们可以比较一下,我们随便找一台可以执行Shell命令的计算机来使用大量函数调用看一看二者执行消耗时间: anonymous.js代码如下: var count = 100000000 , sum = 0 while (count--) (function() { sum++ })()执行一下代码如下: $ time node anonymous.js real 0m1.4...
为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现。 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下,如: 代码如下:<script type="text/javascript"> var GLOBAL={} </script> <script type="text/javascript"> (function(){ var a=123, a1=256; GLOBAL.A={} GLOBAL.A.str=a; }...
最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来相信大家都知道,window是顶级的,这里就不写window了,先忽略1:关于顶级 代码如下:var ns = ns || {};可以看到,其实就是如果发现没有这个对象,就自动创建new Object();如果有,就直接使用这个对象,这样就不会覆盖。2: 第二级,当然也可以在顶级的ns下创建第二级,即 代码如下:ns.ModuleClass = {};可以看到,在ns下创建了一个类,当然也可...