A.对象分为
自定义对象和内置对象,为对象添加
属性和方法。
var
flower
=
new
Object();
flower . name = "长春花" ;
flower . user = "dffff" ;
flower . show = function (){
alert ( this . user );
}
flower . show ();
flower . name = "长春花" ;
flower . user = "dffff" ;
flower . show = function (){
alert ( this . user );
}
flower . show ();
B.构造函数可用来
创建特定类型的对象。
<script type="text/javascript"> function flower(name,pwd) { this.name=name; this.pwd=pwd; this.show=function () { alert(this.name); } } var flowers=new flower("嗯哼","is") var flower01=new flower("ee","pig"); flowers.show(); flower01.show(); alert(flowers instanceof Object); alert(flowers instanceof flower); alert(flowers.constructor==flower) </script>
C.原型链是实现继承的主要方法,回画原型链。
<script type="text/javascript"> function Humans() { this.foot=2; } Humans.prototype.getFoot=function () { return this.foot; } function Man() { this.head=1; } Man.prototype=new Humans(); //继承Humans Man.prototype.getHead=function () { return this.head; } var man=new Man(); alert(man.getFoot()); alert(man.getHead()); alert(man instanceof Object); alert(man instanceof Humans); alert(man instanceof Man);
D.借用构造函数就是子类型构造函数的内部通过
apply()或call()方法调用父类型的构造函数。
<script type="text/javascript"> function Hunmas(name) { this.num=["123","456","789"]; this.name=name; } function Man() { Hunmas.call(this,"mary"); this.age=38; } var man1=new Man(); alert(man1.name); alert(man1.age);
E.组合继承的思路就是
使用原型链实现对原型属性和方法的继承。
<script type="text/javascript"> function Humans(name) { this.name=name; this.clothing=["trousers","dree","jacket"]; } Humans.prototype.sayName=function () { alert(this.name); } function Man(name,age) { Humans.call(this,name); this.age=age; } Man.prototype=new Humans(); Man.prototype.sayAge=function () { alert(this.age); } var man1=new Man("mary",38); man1.clothing.push("coat"); alert(man1.clothing);//输出数组的值 man1.sayName();//输出mary man1.sayAge();//输出38 var man2=new Man("tom",26); alert(man2.clothing);//输出数组的值 man2.sayName();//输出tom man2.sayAge();//输出26 </script>