(一) js面向对象编程(oop)

1. 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

2. 面向对象编程三大要素: 封装、多态、继承

(二) 面向对象编程之封装

1. 封装: 就是把属性和方法都封装到一个对象里

2. 创建对象的几种方式

  1. (1)字面量的方式
  2. (2)构造函数的方式
  3. (3)自定义对象的方式
  4. (4)工厂模式
  5. (5)原型链模式
  1. <script>
  2. // 1.字面量方式创建对象
  3. var obj1 = {
  4. a: 2,
  5. b: 3
  6. };
  7. // 2.使用构造函数创建对象
  8. var obj = new Object();
  9. obj.name = '张三';
  10. obj.sayName = function() {
  11. console.log(this.name);
  12. }
  13. // 3.自定义构造函数
  14. function CreateGf(name, height, sex, age) {
  15. this.name = name;
  16. this.height = height;
  17. this.sex = sex;
  18. this.age = age;
  19. this.sayName = function() {
  20. console.log('我叫' + this.name);
  21. }
  22. }
  23. var gf = new CreateGf('王冰冰', 168, '女', 18);
  24. console.log('gf', gf);
  25. // var gf2 = new CreateGf('李冰冰', 168, '女', 18);
  26. // console.log('gf2', gf2);
  27. // 4.工厂模式(批量制造)创建对象,相对比2的方法,创建2个对象时,sayName方法不需要写两遍
  28. function madeCat(name, age) {
  29. var obj = new Object();
  30. obj.name = name;
  31. obj.age = age;
  32. obj.sayName = function() {
  33. console.log(obj.name);
  34. }
  35. return obj;
  36. }
  37. var cat1 = madeCat('小白', 2);
  38. var cat2 = madeCat('小花', 3);
  39. // 5. 原型模式创造对象,详看继承一节
  40. </script>

3. 判断对象归属(亲子鉴定)

  1. <script>
  2. var date = new Date();
  3. var arr = new Array();
  4. var obj = new Object();
  5. function MadeCat() {
  6. this.cat = '白猫';
  7. }
  8. var cat = new MadeCat();
  9. // 1. 对象的归属,对象由哪个构造器new出来的
  10. console.log(date instanceof Date); // true
  11. console.log(arr instanceof Array); // true
  12. console.log(date instanceof Array); // false
  13. // 2. 一切皆对象,对象是他们祖先
  14. console.log('----', date instanceof Object); //true
  15. console.log('----', arr instanceof Object); //true
  16. console.log('----', obj instanceof Object); //true
  17. </script>

(三) 面向对象编程之多态

多态:允许将子类类型的指针赋值给父类类型的指针;原生JS是弱类型语言,没有多态概念.