JavaScript 对象的几种创建方法
/**
* 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 对象的几种创建方法的更多相关文章
- 面向面试编程——javascript对象的几种创建方式
javascript对象的几种创建方式 总共有以下几个模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.混合构造函数和原型模式 5.动态原型模式 6.寄生构造函数模式 7.稳妥构造函数模式 1 ...
- JavaScript对象的几种创建方式与优缺点
JavaScript中常见的几种创建对象的方式有:Object构造函数模式.对象字面量模式.工厂模式.自定义构造函数模式.构造函数加原型组合模式:他们各自有各自的优缺点和使用场景. 1. Object ...
- Javascript对象的几种创建方式
(1) 工厂模式 Function(){ Var child = new object() Child.name = “欲泪成雪” Child.age=”20” Return child; } Var ...
- pandas-01 Series()的几种创建方法
pandas-01 Series()的几种创建方法 pandas.Series()的几种创建方法. import numpy as np import pandas as pd # 使用一个列表生成一 ...
- 创建javascript对象的几种方式
ECMAScript提供的对象有:String.Date.Array.Boolean.Math.Number.RegExp.Global 程序中需要用到很多自定义的js对象 1.直接创建 var ob ...
- JavaScript函数的4种调用方法详解
在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
- RealSense开发-Session和SenseManager的几种创建方法
从Intel RealSense 的SDK文档对其架构(如图1所示)的始描述可知,Session是SDK应用的主控模块,必须在所有模块操作之前创建,并且在所有模块注销后最后注销.SenseManage ...
- 【JavaScript】浅析JavaScript对象如何添加属性和方法
向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...
随机推荐
- BBSXP最新漏洞 简单注入检測 万能password
BBSXP最新漏洞 漏洞日期:2005年7月1日受害版本号:眼下全部BBSXP漏洞利用:查前台password注入语句:blog.asp?id=1%20union%20select%201,1,use ...
- Hibernate级联操作 注解
EJB3 支持的操作类型 /** * Cascade types (can override default EJB3 cascades */ public enum CascadeType { AL ...
- Android的横竖屏切换
android的横竖屏切换,也会发生不少问题. 1. 锁定屏幕方向,禁止切换: 在AndroidManifest.xml中的Activity参数中加上 android:screenOrientat ...
- Java ServletContext 详解
ServletContext, 是一个全局的储存信息的 空间,服务器开始,其就存在,服务器关闭,其才释放.request,一个用户可有多个:session,一个用户一个:而 servletContex ...
- 字符编码的故事(ASCII,ANSI,Unicode,Utf-8区别)转载
http://www.imkevinyang.com/2009/02/字符编解码的故事(ascii,ansi,unicode,utf-8区别).html 很久很久以前,有一群人,他们决定用8个可以开合 ...
- careercup-C和C++ 13.8
13.8 编写一个智能指针类.智能指针是一种数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制.它会自动记录SmartPointer<T*>对象的引用计数,一旦T类型对象的 ...
- java技术栈:一、java编程语言概述
Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化.因为项目小组成员皆为C++的高手(那个年代 ...
- 关于IE调试模式下才能显示效果
要去除console.log() 低版本IE 没有开启调试模式 console.log()会导致报错
- matlab中disp函数的使用
disp函数直接将内容输出在Matlab命令窗口中, 关键是看disp函数怎么把字符和数字在一起进行显示. matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数 %%以下是 ...
- vim纯文本处理插件txtbrowser
纯文本处理插件:txtBrowser 插件作者:http://guoyoooping.blog.163.com/ Github地址:https://github.com/vim-scripts/Txt ...