(一) js面向对象编程(oop)
1. 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
2. 面向对象编程三大要素: 封装、多态、继承
(二) 面向对象编程之封装
1. 封装: 就是把属性和方法都封装到一个对象里
2. 创建对象的几种方式
(1)字面量的方式(2)构造函数的方式(3)自定义对象的方式(4)工厂模式(5)原型链模式
<script>// 1.字面量方式创建对象var obj1 = {a: 2,b: 3};// 2.使用构造函数创建对象var obj = new Object();obj.name = '张三';obj.sayName = function() {console.log(this.name);}// 3.自定义构造函数function CreateGf(name, height, sex, age) {this.name = name;this.height = height;this.sex = sex;this.age = age;this.sayName = function() {console.log('我叫' + this.name);}}var gf = new CreateGf('王冰冰', 168, '女', 18);console.log('gf', gf);// var gf2 = new CreateGf('李冰冰', 168, '女', 18);// console.log('gf2', gf2);// 4.工厂模式(批量制造)创建对象,相对比2的方法,创建2个对象时,sayName方法不需要写两遍function madeCat(name, age) {var obj = new Object();obj.name = name;obj.age = age;obj.sayName = function() {console.log(obj.name);}return obj;}var cat1 = madeCat('小白', 2);var cat2 = madeCat('小花', 3);// 5. 原型模式创造对象,详看继承一节</script>
3. 判断对象归属(亲子鉴定)
<script>var date = new Date();var arr = new Array();var obj = new Object();function MadeCat() {this.cat = '白猫';}var cat = new MadeCat();// 1. 对象的归属,对象由哪个构造器new出来的console.log(date instanceof Date); // trueconsole.log(arr instanceof Array); // trueconsole.log(date instanceof Array); // false// 2. 一切皆对象,对象是他们祖先console.log('----', date instanceof Object); //trueconsole.log('----', arr instanceof Object); //trueconsole.log('----', obj instanceof Object); //true</script>
(三) 面向对象编程之多态
多态:允许将子类类型的指针赋值给父类类型的指针;原生JS是弱类型语言,没有多态概念.
