数组是一种引用类型,也就是说是通过地址方式引用的。数组里面的值是可以混合使用的,可以是各种类型的。
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对象的。