标签:function 模式 构造 工厂 OLE 大写 自定义 ima create
一.使用构造函数创建对象
1.使用系统构造函数创建对象
举例:
1 var obj = new Object(); 2 obj.name = "小明"; 3 obj.age = 28; 4 obj.eat = function(){ 5 console.log("小明喜欢吃西瓜"); 6 }; 7 console.log(obj.name); 8 console.log(obj.age); 9 obj.eat();
2.使用自定义构造函数创建对象
a.使用不带参数的自定义构造函数创建对象
举例:
1 function Person(){ 2 this.name = "小红"; 3 this.age = 28; 4 this.eat = function(){ 5 console.log("小红喜欢吃西瓜"); 6 } 7 var obj = new Person(); 8 console.log(obj.name); 9 console.log(obj.age); 10 obj.eat();
b.使用带参数的自定义构造函数创建对象
举例:
function Person(name,age){ this.name = name; his.age = age; this.eat = function(){ console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜"); }; } var obj = new Person("小光",18); var obj2 = new Person("小青",22); console.log(obj.name); console.log(obj.age); obj.eat(); console.log(obj2.name); console.log(obj2.age); bj2.eat();
c.定义构造函数时应遵循的命名规范
定义构造函数时函数名的首字母要大写
d.使用instanceof关键字来查看对象的类型
举例:
function Person(name,age){ this.name = name; this.age = age; this.eat = function(){ console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜"); }; } function Dog(){ this.eat = function(){ onsole.log("狗喜欢吃骨头"); }; } var obj = new Person("小光",18); var obj3 = new Dog(); console.log(obj instanceof Person); console.log(obj instanceof Dog); console.log(obj3 instanceof Dog);
二.工厂模式创建对象
举例:
<script> //使用工厂模式创建对象 function createObj(name,age,sex){ var obj = new Object(); obj.name = name; obj.age = age; obj.sex = sex; obj.say = function(){ console.log("我是" + "this.sex" + "的"); }; return obj; } var obj = createObj("小黄",56,"男"); var obj = createObj("小紫",52,"男"); </script>
说明:使用工厂模式创建对象其实就是讲创建对象的过程用函数封装起来,用于方便快捷的创建多个类似的对象,同时也存在问题,使用工厂模式创建的对象,无法判断哪个实例属于哪个对象,即使用instanceof关键字无意义
标签:function 模式 构造 工厂 OLE 大写 自定义 ima create
原文地址:https://www.cnblogs.com/alan-1996/p/10459921.html