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); ...
随机推荐
- jQuery常用插件大全(9)ResponsiveSlides插件
ResponsiveSlides.js是一个展示同一容器内图片的轻量级响应式jQuery幻灯片插件(tiny responsive slideshow jQuery plugin).它支持包括IE6在 ...
- CodeForces19D:Points(线段树+set(动态查找每个点右上方的点))
Pete and Bob invented a new interesting game. Bob takes a sheet of paper and locates a Cartesian coo ...
- The Castle
链接 分析:先暴力求出联通块数和最大联通块包含多少,接着对于每个位置判断去掉其上下左右的四个位置的墙之后的最大联通块数,并且记得先选最西,然后选最南的顺序了来输出 /* PROB:castle ID: ...
- Python之路,Day13 - 堡垒机
项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...
- UI:UICollectionView
#import "ViewController.h" #import "HeaderView.h" #import "FooterView.h&quo ...
- 关于serviceComb中的swagger抛出NullPointerException
在使用serviceComb时, 如果抛出以下异常: org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions > ...
- python 合集set,交集,并集,差集,对称差集别搞混
有集合 x与y x = {1,2,3,4,5}y = {4,5,6,7,8} x和y的交集为 {4,5} x和y的对称差集{1, 2, 3, 6, 7, 8} x和y的并集{1, 2, 3, 4, 5 ...
- JAVA多线程(一) Thread & Runnable
githut代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service/ ...
- 3.bool布尔值int,str的转化,字符串的常用方法,字符串format,is判断(字符串的数字),for循环
1.bool 布尔值 bool 布尔值 -- 用于条件使用 True 真 False 假 True 真 False 假 print(bool(-10)) # 0 是 False 非0的都是True p ...
- Luogu P1069细胞分裂【分解质因数/数论】By cellur925
题目传送门 发现这题真的坑超多啊...调了一晚上终于过了...我好菜啊qwq. 题意说的比较明白,让你求满足(si^k)%(m1^m2)==0的最小k值.然后看数据范围我们知道,我们肯定不能暴力的判断 ...