/**
* Created by 2016 on 2016/6/4.
*/
function Box(){
var obj = new obj();
obj.name = "Lee";
obj.run = function(){
return this.name+"run";
};
return obj;
}
var B = Box();
//工厂模式创建对象 在对象中创建obj,在最后返回obj对象 function Box(){
this.name = "Lee";
this.run = function(){
return this.name+"run";
};
}
var B = new Box();
//构造函数模式 使用new运算符创建对象 function Box(){};
Box.prototype.name = "Lee";
Box.prototype.run = function(){
return this.name+"run";
}; var B = new Box();
//原型模式创建,prototype为原型属性。
//优点:方法共享,缺点:属性共享 function Box(){};
Box.prototype = {
constructor:Box,//强制指向Box原型,否则指向object
name:"Lee",
run:function(){
return this.name+"run";
}
};
var B = new Box();
//原型模式,字面量形式创建。这里不能重写字面量,会导致之前的连接断开
//缺点:无法传递参数,所有属性共享 function Box(){
this.name = "Lee";
Box.prototype.run = function(){
return this.name+"run";
};
};
var B = new Box();
//原型+构造函数模式创建,这里每一个实例的run都会初始化一次,所以可以使用动态的原型+构造
//函数模式 function Box(){
this.name = "Lee";
if(typeof Box.prototype.run != "function"){
Box.prototype.run = function(){
return this.name+"run";
};
} };
var B = new Box(); //动态创建。这里的run只会被初始化一次,并且方法是共享的,节省内存 //创建对象的方法有很多,使用动态的原型+构造函数模式创建比较好。
//实例属性独立,方法共享。
function Box(){
var obj = new Array();
obj.name = "Lee";
obj.run = function(){
return this.name+"run";
};
return obj;
} var B = new Box(); //寄生构造函数模式 除了使用new操作符创建对象之外,和工厂模式是一致的

JavaScript 对象的几种创建方法的更多相关文章

  1. 面向面试编程——javascript对象的几种创建方式

    javascript对象的几种创建方式 总共有以下几个模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.混合构造函数和原型模式 5.动态原型模式 6.寄生构造函数模式 7.稳妥构造函数模式 1 ...

  2. JavaScript对象的几种创建方式与优缺点

    JavaScript中常见的几种创建对象的方式有:Object构造函数模式.对象字面量模式.工厂模式.自定义构造函数模式.构造函数加原型组合模式:他们各自有各自的优缺点和使用场景. 1. Object ...

  3. Javascript对象的几种创建方式

    (1) 工厂模式 Function(){ Var child = new object() Child.name = “欲泪成雪” Child.age=”20” Return child; } Var ...

  4. pandas-01 Series()的几种创建方法

    pandas-01 Series()的几种创建方法 pandas.Series()的几种创建方法. import numpy as np import pandas as pd # 使用一个列表生成一 ...

  5. 创建javascript对象的几种方式

    ECMAScript提供的对象有:String.Date.Array.Boolean.Math.Number.RegExp.Global 程序中需要用到很多自定义的js对象 1.直接创建 var ob ...

  6. JavaScript函数的4种调用方法详解

    在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...

  7. JavaScript 函数的4种调用方法

    JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...

  8. RealSense开发-Session和SenseManager的几种创建方法

    从Intel RealSense 的SDK文档对其架构(如图1所示)的始描述可知,Session是SDK应用的主控模块,必须在所有模块操作之前创建,并且在所有模块注销后最后注销.SenseManage ...

  9. 【JavaScript】浅析JavaScript对象如何添加属性和方法

    向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...

随机推荐

  1. 【30】透彻了解inlining 的里里外外

    1.inline方法相当于文本替换,不需要承担方法调用的额外开销,同时还有潜在的优势,文本替换后,编译器会进行代码优化.而对于方法调用,编译器没有能力进行代码优化. 2.显而易见,inline方法往往 ...

  2. 从零学习IOS-VirtualBox-4.3.20-96997-Win

    在virtual box中点击[新建] 发现只有32位的mac可以选择,百度之后才知道需要开启虚拟化,于是重启电脑进入到BOOT,选择高级,然后将虚拟化开启.再重新启动virtual box

  3. paip.提升性能---- 网站并发数的总结.txt

    paip.提升性能---- 网站并发数的总结.txt 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.n ...

  4. C#中Strings VS. StringBuilder

    string mappingHandler = String.Format(@"""[name='BTSHTTPReceiveModule',path='BTSHTTPR ...

  5. [Effective C++ --025]考虑写出一个不抛异常的swap函数

    引言 在我的上一篇博客中,讲述了swap函数. 原本swap只是STL的一部分,而后成为异常安全性编程的脊柱,以及用来处理自我赋值可能性. 一.swap函数 标准库的swap函数如下: namespa ...

  6. eoe推荐的优秀博客

    <a href="http://my.eoe.cn/huodong/archive/5430.html">http://my.eoe.cn/huodong/archiv ...

  7. IE兼容低版本

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><m ...

  8. java编程常用技术

    一:将String字符串放在最前面 防止发生NullPointerException异常,我们通常把String字符串放在equals方法的左边来比较,这样可以有效的避免 空指针异常的发生. 第一种情 ...

  9. requirejs 定义模块中含有prototype

    因为我对requirejs不熟悉,不清楚如何定义带有prototype的模块, 在看了:https://gist.github.com/jonnyreeves/2474026 的demo之后,就明白了 ...

  10. JavaScript 数组方法总结

    最近公司没项目.所以所幸学学JS.毕竟很多人和我一样.属于培训机构出来的.JS基础也很差. 面试的时候面试官问你 .你会JS不.你会毫不犹豫的回答会.因为你确实用过.但是真正会的或许只是以前项目中需要 ...