🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 原型:Prototype - 原型是什么 - 原型是 `class`,修改它可以影响一类元素 - 在已有对象中加入自己的属性、方法 - 为所有 `Array` 添加 `Sum` 方法:`Array.prototype.sum = function () {} ` - 给对象添加方法,类似于行间样式 - **给原型添加方法,类似于 `class`** - 原型的小缺陷 - 无法限制覆盖 - 类和对象的区别 - 类:生产对象的模板 `Array` - `var arr = new Array()` - 对象:产品 `arr` - 总结:**用构造函数加属性,用原型加方法,叫做混合方式构造对象** - 代码: ```HTML <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>面对对象基础</title> <style> </style> <script> // 工厂方式 function CreatePerson(name, qq) { var obj = new Object(); obj.name = name; obj.qq = qq; obj.showName = function () { console.log('名字:', this.name); } obj.showQQ = function () { console.log('QQ:', this.qq) } return obj; } var person = CreatePerson('zhangsan','212345678'); person.showName(); person.showQQ(); // 使用原型 function CreatePerson2(name, qq) { this.name = name; this.qq = qq; } CreatePerson2.prototype.showName2 = function () { console.log('名字:', this.name); } CreatePerson2.prototype.showQQ2 = function () { console.log('QQ:', this.qq) } var people = new CreatePerson2('asdf','535'); people.showName2(); people.showQQ2(); </script> </head> <body> </body> </html> ```