欢迎访问 ‘ js ’ 的所有文章
在小规模的脚本开发中,有时候并不值得去引用命名空间,因为会带来某种程度的复杂性;但是当在同一个网页里引入10多个js文件之后,各js中的同名函数就很容易冲突了。比如xxx库里写了个addCssStyle方法,yyy类库里也写了个addCssStyle方法,而这两个方法的具体实现又有一定差别。那么同时引用这两个组件的时候,函数冲突之后导致页面效果发生变化,调试和修改都是非常痛苦的,如果为了避免冲突,而放弃引用一些优秀的组件,那更是让人郁闷的事情。为此,在封装javascript组件库的时候,请使用命名空间来避免冲突。将所有的方法和变量都要按包名类名的方式来写。(这个时候写代码的感觉和封装java的util方法一样方便,呵呵)
所以,请记住:请为你封装的JavaScript库加上命名空间以提高代码重用性。
但是JavaScript原生并不支持命名空间,需要变通来实现。
在JavaScript中,所有的对象(或者称类型,例如Boolean,Array,Function)都可以认为是一个关联数组。关联数组中的对象可以使用点(.)进行引用,这样我们可以利用关联数组变相地实现命名空间。首先声明一个关联数组作为根,因为页面声明的对象都是window这个变量的成员,所以一般命名空间的实现都以window为根。当向window申请a.b.c的命名空间时,首先在window中查看是否存在a这个成员,如果没有则在window下新建一个名为a的空关联数组,如果已经存在a,则继续在window.a中查看b是否存在,以此类推。下面分别是Atlas和YUI中的实现方法。 阅读全文
javascript大括号最普遍的还是用在函数体上 ,
function(h){
code。。。
}最近在看淘宝的开源框架KISSY看到一些考究点
用法,就像是ruby中的hash用法一样,通过key对应值来表达一个意思时,往往
在脑海中当作类似对象而一阅而过。
JavaScript 中的对象其实就是属性(方法)的一个集合,并没有严格意义的类的概念。
它提供了另外一种简单的方式来创建对象,即大括号({})语法:
{
property1:statement,
property2:statement2,
…,
propertyN:statmentN
}
通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号隔开),
来实现对象的定义,这段代码就直接定义个了具有n个属性或方法的对象,
其中属性名和其定义之间用冒号(:)隔开。
var user={
name:”jack”, //定义了name属性,初始化为jack
favoriteColor:["red","green","black","white"],//定义了颜色喜好数组
hello:function(){ //定义了方法hello
alert(“hello,”+this.name);
},
sex:”male” //定义了性别属性sex,初始化为sex
}
和json格式差不多,不过函数也作为key值来表示,而这在ruby中,也是通用的
格式。不过用=> 来代替:而已。
js ajax jquery json flex