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("张三",["打游戏","看书"]);
二、 构造函数模式
创建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
this.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
}
var person=new createPerson("张三",["打游戏","看书"]);
person.getInfo();
三、原型模式
创建:
function createPerson(){}
createPerson.prototype.name="张三";
createPerson.prototype.behavior=["打游戏","看书"];
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
var person=new createPerson();
person.getInfo();
四、组合模式(构造函数与原型)
创建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
}
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
var person=new createPerson("张三",["打游戏","看书"]);
person.getInfo();
五、动态原型模式
创建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
if(typeof this.getInfo!="function"){
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior);
}
}
}
var person=new createPerson("张三",["打游戏","看书"]);
person.getInfo();
六、寄生构造函数模式
创建:
function createPerson(name,behavior){
var p={};
p.name=name;
p.behavior=behavior;
p.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
p.getInfo();
}
var person=new createPerson("张三",["打游戏","看书"]);
七、稳妥构造函数模式
创建:
function createPerson(name,behavior){
var p={};
p.getInfo=function(){
alert(name+"在"+behavior)
}
p.getInfo();
}
var person=new createPerson("张三",["打游戏","看书"]);
参考网址:http://www.cnblogs.com/ifat3/p/7429064.html
JavaScript创建对象的七种方法的更多相关文章
- Javascript 创建对象的三种方法及比较【转载+整理】
https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain 本文内容 引 ...
- JavaScript 创建对象的七种方式
转自:xxxgitone.github.io/2017/06/10/JavaScript创建对象的七种方式/ JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以 ...
- JavaScript创建对象的4种方法
我们有很多种方式去构造一个对象.可以构造一个对象字面量,也可以和new前缀连用去调用一个构造器函数,或者可以使用Object.create方法去构造一个已经存在的对象的新实例,还可以调用任意一个会返回 ...
- JavaScript | 创建对象的9种方法详解
————————————————————————————————————————————————————————— 创建对象 标准对象模式 "use strict"; // *** ...
- JavaScript创建对象的三种方法
在 JavaScript 中我们知道无法通过类来创建对象,那么如何创建对象呢? (1)通过“字面量”方式创建对象 将你的信息写到{ }中,并赋值给一个变量,此时这个变量就是一个对象,例: var ga ...
- JavaScript创建对象的几种 方式
//JavaScript创建对象的七种方式 //https://xxxgitone.github.io/2017/06/10/JavaScript%E5%88%9B%E5%BB%BA%E5%AF%B9 ...
- javascript 创建对象的7种模式
使用字面量方式创建一个 student 对象: var student = function (){ name : "redjoy", age : 21, sex: women, ...
- java中需要关注的3大方面内容/Java中创建对象的几种方法:
1)垃圾回收 2)内存管理 3)性能优化 Java中创建对象的几种方法: 1)使用new关键字,创建相应的对象 2)通过Class下面的new Instance创建相应的对象 3)使用I/O流读取相应 ...
- 创建对象的两种方法: new 和 面向对象(对象字面量)及对象属性访问方法
创建对象的两种方法: new 和 面向对象(对象字面量)用 new 时:var o = new Object();o.name = "lin3615";alert(o.name); ...
随机推荐
- hihocoder 1015 KMP(找多个位置的 【*模板】)
#1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...
- 包、修饰符、内部类、匿名内部类(java基础知识十)
1.package关键字的概述及作用 * A:为什么要有包 * 将字节码(.class)进行分类存放 * B:包的概述 * * C:包的作用 * 包名要定义在第一行, ...
- @Data 注解在实体类的使用可省去生成GET,SET方法
你有没有觉得在每个实体类中都要生成get,set方法很麻烦, 要是需求的变化,需要再加一个字段,添加属性后则又要添加其get,set方法 现有一个很好用的注解能解决这个麻烦 1,idea中装上 lom ...
- 【Maven】pom.xml(2)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- iOS copy/retain/assign
1 深复制:内容拷贝,源对象和副本对象指的是两个不同的对象,源对象引用计数器不变,副本对象引用计数器为1 2 浅复制:指针拷贝,源对象和副本对象指的都是同一个对象,对象引用计数器+1,相当于retai ...
- 【转】构建Maven项目自动下载jar包
原文地址:https://blog.csdn.net/gfd54gd5f46/article/details/54973954 使用Maven 自动下载jar包 右键单击项目,将项目 转换成Maven ...
- pkill详解
pkill详解 一:含义: 是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序:如果您想杀掉单个进程,请用kill来杀掉. 二 ...
- border-collapse
表格边框,对于别的元素加上的边框不起作用 border-collapse : separate(默认) | collapse | inherit separate : 边框独立 效果图: collap ...
- VMware ESXI虚拟机挂载移动硬盘
Windows server2008 R2 1.“编辑虚拟机设置”,点击“添加” 2.点击添加“USB控制器”: 3.添加完“USB控制器”以后,再点击添加“USB设备”: 完成即可:如果系统里面不显 ...
- 008--linux 基础之网络配置和ssh服务
一.linux网络配置 ifconfig eno16777736 192.168.19.48/24 | eno16777736(网卡名) 192.168.19.48/24(临时IP地址) ...