JavaScript实验:方法调用

JavaScript中,如果function属于一个对象,那么通过对象来访问该function的行为称之为“方法调用”。与普通的函数调用不同的是,在进行方法调用时,function中的this指代将发生变化 -- this将指代用于调用该function的对象(该对象将成为方法调用的invocation context): var x = 99; var sample = { x:1, act:function(a){ this.x = a*a;//assign »

JavaScript实验:闭包(Closure)

闭包是JavaScript中一个重要的特性,其最大的作用在于保存函数运行过程中的信息。在JavaScript中,闭包的诸多特性源自函数调用过程中的作用域链上。 函数调用对象与变量的作用域链 对于JavaScript中的每一次函数调用,JavaScript都会创建一个局部对象,用来储存该函数中定义的局部变量;如果该函数内部还有一个嵌套定义的函数(nested function),那么JavaScript会在已经定义的局部对象之上再定义一个嵌套局部对象。对于一个函数,其内部有多少层的嵌套函数定义,也就有多少层的嵌套局部对象。该局部对象称为“函数调用对象”(ECMAScript 3中的"call object",ECMAScript 5中改名为"declarative environment record" »

JavaScript实验:数组

与Java语言不同,JavaScript中的数组拥有三个特性: 无类型。数组的成员可以是任何类型,同一个数组也可以由很多不同类型的成员所组成。 长度可变。数组的长度是可以动态变化的,因此在JavaScript中不存在数组访问的越界问题。 不连续性。数组中成员的位置可以是连续的(0, 1, 2, 3…),也可以是不连续的。任何数组都有一个名为length的属性,在数组成员连续的情况下,length值与数组成员数目一致;当数组成员不连续时,length值要大于数组成员的数目。与连续的数组相比,不连续数组的读写性能要差一些。 实验: var o = [42, »

JavaScript实验:数组成员的添加与删除

JavaScript中,由于数组长度是可变的,因此可以通过直接定义新的成员而将其添加到数组中: var o = [2,3,5]; o[3] = 7; console.log(o);//[2,3,5,7] 除了这种方法,还可以通过使用push()语句来达到相同的目的: o.push(11); console.log( »

JavaScript实验:数组操作

JavaScript中的数组对象自带了一些方法,可以通过使用这些方法来对数组进行操作。 join() 可以使用join()方法将数组中的成员合并到一个字符串中: var o = [1,2,3]; console.log(o.join());//1,2,3 console.log(o.join(" "));//1 2 3 var emptyArray »