javascript设计模式第三天

人盡茶涼 提交于 2020-05-08 22:35:33
 
一个构造函数,如果不加new关键字,则会是undefined。
添加的属性会添加到window对象中去。
 
创建对象的安全模式:(不用担心创建对象忘记使用new关键字的问题)
 
可以用instanceof检测 某一个对象是否为某一个类的实例。所有创建的对象都是Object的实例
 
 
 
类式继承有2个缺点:
 
1.由于子类通过其原型prototype对父类实例化,继承了父类,所以父类中的共有属性要是引用类型,就会在子类中被所有实例共用,因此一个子类的实例的更改子类原型从父类构造函数中继承来的共有属性就会直接影响到其他子类。这种容易埋藏陷阱。
 
2.创建父类时无法向父类传递参数。
 
 
call这条语句是构造函数式继承的精华。由于call这个方法可以更改函数的作用环境,因此在子类中,对superClass调用这个方法就是将子类中的变量在父类中执行一次,由于父类中是给this绑定属性的,因此子类自然也就继承了父类的共有属性。这种继承没有设计prototype,所以父类的原型方法不会被继承。
 
 
组合继承:
结合以上两种用法:在子类构造函数中执行父类构造函数,在子类原型上实例化父类就是组合模式,这样就融合了类式继承和构造函数继承的优点。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!