数组是一种引用类型,也就是说是通过地址方式引用的。数组里面的值是可以混合使用的,可以是各种类型的。
object类是所有js类的基类。它的属性有constructor和prototype等。
var p1 = new Object(); p1.name = "sp"; document.writeln(p1.constructor); var i = new Number(10); //等价于 var i=10; Number.prototype.add = function(a){ //给类添加方法。 document.writeln("this+a"+(this+a)); return this+a; } var j = new Number(10); document.writeln(j.add(10).add(30));
运行结果如下:
function Object() { [native code] } this+a20 this+a50 50
如何给类添加方法:
/* 下面给js的Array对象拓展一个find(val)方法,当一个Array对象调用该方法的时候, 如果能找到val则返回其下标,否则返回-1。 */ var arr1 = new Array(3); arr1[0]="renlei"; arr1[1]="ziyuanbu"; arr1[2]="caonima"; //给所有Array对象添加一个方法find(val) Array.prototype.find=function(val) { //开始遍历数组 for(var i =0;i<this.length;i++) { if(val==this[i]) return i; } return -1; } document.write(arr1.find("ziyuanbu")+"<br/>"); //遍历 for(var i=0;i<arr1.length;i++) { document.writeln(arr1[i]+" "); } //颠倒 document.write("<br/>"); arr1.reverse(); for(var i=0;i<arr1.length;i++) { document.writeln(arr1[i]+" "); }
运行结果如下:
1
renlei ziyuanbu caonima
caonima ziyuanbu renlei
成员函数细节:
函数的参数列表可以有多个。
成员函数可以没有返回值,如果有返回值,则最多可以返回一个。
js支持参数可变:
js不支持重载,直接调用最后一个。js调用函数的时候,是根据函数名来调用的,如果有多个函数名
相同,则认可最后一个。
test(23)的结果是23undefine
test(3,'hello')的结果是3 hello。他们都是调用后面一个函数来实现的。
如果一个函数没有写在一个类里面,则我们认为这个函数是全局函数。本身是属于window对象的。