JavaScript语言——对象

 
 
//对象
//
在这里我们定义了一个猫对象,它包含一个名字属性,一个大笑声属性,和一个哭的方法。
var Cat={//定义一个猫对象
    name:'Persian',    //它叫波斯猫
    lol:(function(){//定义一个大声笑的声音
        var s='meow';
        return s+'...'+s+' ';
    })(),//注意这里()立即执行方法,返回叫声赋给lol
    cry:function(){//定义一个哭的方法
        var s='wuuu';
        return this.name+' 哭了:'+s+'...'+s+' ';//这里是一个闭包
    }
};
//下面我们来看看效果
document.write(Cat.name+' 高兴时的叫:'+Cat.lol +' '+Cat.cry() +"</br>");
/*输出
Persian 高兴时的叫:meow...meow Persian 哭了:wuuu...wuuu 
*/




//构造器
//
定义一个老鼠的构造器
var Mouse=function(name){
    this.name=name||'老鼠喽啰';//构造函数以this关键字区分于函数
}
/*
var mouse=Mouse('Mickey');    //错误的实例化,忘记了加new关键字
document.write(mouse);        //undefined   未定义,因为方法没有任何返回
document.write(name);        //会输出Mickey,因为错误的忘了加new关键字,导致定义的是一个方法,而这个方法Mouse('Mickey')执行后导致this.name=name,name变成了全局成员了。
*/
var Animal={//定义动物对象
    run:function(){ alert('running!');    }
}
Mouse.prototype=Animal;//原型(继承)动物对象
var Mi=new Mouse('Mickey');//构造的是米老鼠
document.write(Mi.name);//Mickey 
Mi.run();//调用父类run的方法,跑起来。
原文地址:https://www.cnblogs.com/13yan/p/2300917.html