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); ...
随机推荐
- 异常、Throwable、finally、File类(十九)
1.异常的概述和分类 * A:异常的概述 * 异常就是Java程序在运行过程中出现的错误.* B:异常的分类 * 通过API查看Throwable * Error * 服务器宕机,数据库崩溃等 * E ...
- MongoDB C++ gridfs worked example
使用libmongoc,参考:http://mongoc.org/libmongoc/current/mongoc_gridfs_t.html #include <mongoc.h> #i ...
- [POI 2014] Little Bird
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3831 [算法] 单调队列优化动态规划 时间复杂度 : O(N) [代码] #incl ...
- 给jenkins设置管理员
1.点击jenkins web 页的Manage Jenkins,然后点击 Configre Global Security,进行安全配置: 2.启用安全设置,使用Jenkins 自带数据库,只允许登 ...
- vue-resource 设置请求的参数以formData形式以及设置请求的过滤器
在main.js中添加下面的设置: Vue.http.options.emulateJSON = true;Vue.http.options.headers = {'Content-Type': 'a ...
- Get与Post的小知识
Get与Post的小知识 一.传递参数: Get把参数包含在URL中,而在Post通过request body传递参数.因为参数直接暴露在URL上,GET比POST更不安全,所以不能用来传递敏感信息. ...
- js、匿名函数、闭包、回调函数
234567891011121314151617181920212223242526272829303132333435 闭包 闭包:闭包是指有权访问另一个函数作用域中的变量的函数 函数嵌套一个函数, ...
- P2579 [ZJOI2005]沼泽鳄鱼
传送门 话说邻接矩阵居然还能快速幂的么-- 把原图的邻接矩阵\(G\)打出来,那么\(G[u][v]\)表示一秒后\(u\)到\(v\)的方案数,\(G^2[u][v]\)表示\(2\)秒后的方案数- ...
- touch的基本用法
touch的基本功能是改变文件的时间戳,以下是三种常用用法: 1.创建一个空文件 以当前时间为时间戳创建一个空文件.$ touch touch.txt //touch.txt不存在 2.更改文件时间戳 ...
- 第四篇 .NET高级技术之结构体及值类型引用类型
结构体 在平时的开发中很少自己去写结构体,他是一种值类型的数据.对于结构,不像类那样存在继承,一个结构体不能从另一个结构或类继承.但是结构体从基类Object继承. 语法: //struct是定义结构 ...