javascript创建对象的七种模式

1、工厂模式

 1 function createPerson(name,age){
 2        var obj = new Object();
 3        obj.name = name;
 4        obj.age = age;
 5        function sayName(){
 6            alert(obj.name);
 7        };
 8        sayName();
 9        return obj;
10    }
11     var person = createPerson("wutian",22);

2、构造函数模式

1 function Person(name,age){
2        this.name = name;
3        this.age = age;
4        function sayName(){
5            alert(this.name);
6        };
7        sayName();
8    }
9     var person = Person("wutian",22);

按照惯例,构造函数始终应该以一个大写字母开头,其中经过了四个步骤:

构造一个新对象->将构造函数的作用域赋值给新对象->执行构造函数代码->返回新对象

 3、原型模式

 1 function Person(){
 2
 3     }
 4     Person.prototype.name = "wutian";
 5     Person.prototype.age = 22;
 6     Person.prototype.sayName = function(){
 7         alert(this.name);
 8     }
 9     var person1 = new Person();
10     var person2 = new Person();
11     alert(person1.name === person2.name);//true

说明person1和person2访问的是同一个name

4、组合使用构造函数模式和原型模式

 1  function Person(name,age){
 2         this.name = name;
 3         this.age = age;
 4     }
 5     Person.prototype= {
 6             sayName : function(){
 7                 alert(this.name);
 8             }
 9     }
10     var person1 = new Person(‘wu‘,22);
11     var person2 = new Person(‘wu‘,22);
12     alert(person1.name);
13     alert(person1 === person2);//false
14     alert(person1.sayName === person2.sayName);//true

5、动态原型模式

 1  function Person(name,age){
 2         this.name = name;
 3         this.age = age;
 4         if(typeof this.sayName != "function"){
 5             Person.prototype.sayName = function () {
 6                 alert(this.name);//如果sayName方法不存在则创建函数
 7             }
 8         }
 9     }
10     var person1 = new Person(‘wu‘,22);
11     person1.sayName();

6、寄生构造函数模式

时间: 2024-07-31 22:14:42

javascript创建对象的七种模式的相关文章

JavaScript 创建对象的七种方式

转自:xxxgitone.github.io/2017/06/10/JavaScript创建对象的七种方式/ JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产.接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点. 工厂模式 1 function createPerson(name, job) { 2 var o = new Object() 3 o.name = name 4 o.job

javascript 创建对象的7种模式

使用字面量方式创建一个 student 对象: 1 var student = function (){ 2 name : "redjoy", 3 age : 21, 4 sex: women, 5 sayName: function(){ 6 alert(this.name); 7 } 8 }; 使用Object.defineProperties() 方法给对象添加属性:(只有IE9+,FF4+,SF5+,OP 12+,Chrome支持) 1 var student = {}; 2

补充:JavaScript 创建对象的七种方式

JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产.接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点. 工厂模式 1 function createPerson(name, job) { 2 var o = new Object() 3 o.name = name 4 o.job = job 5 o.sayName = function() { 6 console.log(this.na

javascript创建对象的几种模式

虽然Object构造函数或者对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象会产生大量的重复代码.为了解决这个问题,人们开始使用工厂模式的一种变体. 1.工厂模式 function createPerson(name, age, job){ var o=new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; retu

Javascript面向对象学习笔记(二)--创建对象(七种模式)

一.工厂模式 考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节 function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var person1=createPerson("小码农",18,"

JavaScript创建对象的七种方法

一. 工厂模式 创建: function createPerson(name,behavior){ var p=new Object(); p.name=name; p.behavior=behavior; p.getInfo=function(){ alert(this.name+"在"+this.behavior) } p.getInfo();}var person=createPerson("张三",["打游戏","看书"

js创建对象的几种模式

//javaScript创建对象的几种模式特点 /*//1 工厂模式function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=function() { alert(name); }} createPerson("Tom",18,"Teachaer");createPerson("Jack",20,"Student"

JavaScript中创建对象的几种模式

看了js高级程序设计的第六章,很多知识.关于创建对象的几种模式,这里记录一下. 1.工厂模式 1 function createPerson(name, age, job) { 2 var o = new Object(); 3 o.name = name; 4 o.age = age; 5 o.job = job; 6 o.sayName = function() { 7 return this.name; 8 }; 9 return o; 10 } 没有解决对象识别的问题,不能知道一个对象的

Linux网卡bond的七种模式详解

像Samba.Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式. 一.bond的七种模式介绍:1.mode=0(balance-rr)(平衡抡循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1-.一直循环