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>