面向对象:
1、面向对象是一种软件开发方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的灵活性、重用性和扩展性。
2、面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,是一种高级的编程思想。
3、面向对象的特征:封装、继承、多态、抽象
工厂模式:
1、工厂模式是软件工程领域一种常见的设计模式,这种模式抽象了创建对象的具体过程。
原料 => 加工 => 出厂
用函数来封装创建对象的具体过程:
function createCat(name,age){
var obj = {};
obj.name = name;
obj.age = age;
obj.sayHi = function(){
alert('大家好,我是' + obj.name);
}
return obj;
}
var cat1 = new createCat('短尾猫',1);
var cat2 = new createCat('折耳猫',2);
console.log(cat1.sayHi === cat2.sayHi);
console.log(cat1);
console.log(cat1.constructor);
console.log(cat1.name);
console.log(cat2.name);
对象的 constructor 属性,返回对象的构造器(类)
instanceof 运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
语法 object instanceof constructor
工厂模式的缺陷:
工厂模式创建多个对象时,不同对象的相同方法仍然存在多个,既不环保,又不高效;
工厂模式创建对象时,没办法解决对象类型识别的问题。