1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>The eighth group</title> 6 </head> 7 <body> 8 9 <script type="text/javascript"> 10 /*** 11 * 如何上手面向对象编程? 12 * 面向对象三大特性:封装,继承,多态 13 * javascript 无法创建类 函数来封装特定接口创建对象 14 * 面向对象语言有一个标志,即拥有类的概念,抽象实例对象的公共方法和属性,基于类可以创建任意多个实例对象! 15 * 类的概念:在现实生活中,相似的对象之间往往都有一些共同的组成特征。 16 ***/ 17 18 /*** 19 * 创建对象 20 * 对象字面量方式, new关键字,object.create()函数来创建。 21 ***/ 22 //对象字面量方式 23 var Empty = {};//没有任何属性的对象 24 var Me ={ 25 name: "beimeng", 26 hair: "black", 27 say: function(){ 28 console.log("I am" + Me.name); 29 } 30 }; 31 Me.say(); 32 //new关键词创建对象 33 var obj = new Object();//创建一个空对象,和{}一样 34 //object.create()创建对象 35 var o = Object.create({x:1}); 36 console.log(o); 37 console.log(o.x); 38 /*** 39 * 面向对象第一步:创建类 40 * 因为 javascript 中无法创建类,因此,用函数来封装以特定接口创建对象 41 * 我对面向对象的理解? 42 * 说道面向对象开发就想到23种设计模式,想到曾经买过《大话设计模式》和《javascript设计模式》的书。 43 * 23中设计模式根据不同的场景应用不同环境中,设计模式只是一种思想,让你的代码框架更易扩展。 44 * 面向对象思想的前提是抽象,从现实世界中抽象出一些对象或者类的共性之后“封装”成类或者抽象类或者接口。 45 * 这些类也罢,接口也好。是为了增加代码的复用性,既然是为了复用,当然需要子类来“继承”。 46 * 在继承的过程中为了满足子类个性化的需求,于是“多态”就自然的出现。 47 ***/ 48 var Person = (function () { 49 /*** 50 * @param name 姓名 51 * @param male 性别 52 * @param age 年龄 53 * @param hobby 爱好 54 * @constructor 55 */ 56 var Person = function (name, male, age, hobby) { 57 this.name = name; 58 this.male = male; 59 this.age = age; 60 this.hobby = hobby; 61 }; 62 return function (name, male, age, hobby) { 63 return new Person(name, male, age, hobby); 64 }; 65 })(); 66 var personOne = Person("onename","男",18,"打篮球"); 67 var personTwo = Person("twoname","女",26,"打篮球"); 68 console.log(personOne, personTwo); 69 </script> 70 </body> 71 </html>
时间: 2024-10-12 19:52:32