第33讲 Object类 闭包 成员函数再说明 聪明的猪小练习
Object类 闭包
//初步体验Object类,通过Object直接创建对象
var p1=new Object();
p1.name="sp";
window.alert(p1.constructor);
◆加深对类和对象的认识
如何给累添加方法(如何给某类型的所有对象添加方法)
请思考给js的Array对象扩展一个find(val)方法
,当一个Array对象调用该方法的时候,如果能找
到val则返回其下标。否则返回-1。
//体验一下array
var arr1=new Array(3);
arr1[0]="George";
arr1[1]="John";
arr1[2]="Thomas";
//遍历该数组
for(var i=0;i<arr1.length;i++){
document.write(arr1[i]+" ");
}
//使用Array提供的方法,颠倒数据
arr1.reverse();
document.write("<br/>");
//遍历该数组
for(var i=0;i<arr1.length;i++){
document.write(arr1[i]+" ");
}
//现在我们一起看看如何给所有Array对象添加一个方法find(val)
Array.prototype.find=function(val){
//遍历数组 this
for(var i=0;i<this.length;i++){
if(val==this[i]){
return i;
}
}
return -1;
}
document.writeln("John 下标="+arr1.find("sp"));
◆闭包
这个知识点,在讲封装的时候再说
◆成员函数的细节
①成员函数的参数可以是多个
function 函数名(参数1…){
}
① 员函数可以有返回值,也可以没有,但是有的话,最多只有一个
② js中不支持函数的重载,具体案例
//后一个test会覆盖前一个test方法,js中没有重载,调用时只会认最后一个方法
function test(a,b){
window.alert("hello");
}
function test(a){
window.alert(a);
}
function test(a,b){
window.alert(a+"&nbps;"+b);
}
//test(23);
window.test(3,"hello");
结论:js在调用一个函数的时候是根据函数名来调用,如果有多个函数名相同,则认最后那个函数
转载于:https://blog.51cto.com/dwt1220/729840