JavaScript创建对象的方式小结(4种方式)

本文实例总结了JavaScript创建对象的方式。分享给大家供大家参考,具体如下:

潜意识里,JavaScript不能算是面向对象的语言,要算也只能说是趋向面向对象的一种语言,至少它不能很好的吻合面向对象最基本的三大特性(继承、封装、多态),当然有很多人就认为JavaScript是面向对象语言,好像也说得没错,因为面向对象也能在JavaScript中实现,比如说继承、封装吧也都可以在JavaScript中实现,但是实现方便吗?所以我觉得很疑惑。看到网上有一网友评价的很好,"面向对象只是一种思想,语言只能说是否很好的支持面向对象的特性。"如果对面向对象有一定的认识,用C也能写出面向对象的程序,javascript也是如此。所以说不能断言说JavaScript是面向对象语言, 呵呵,自认为是菜鸟,不敢妄自断言,还是看看代码:

1. 利用json创建对象

var company = {};
company.name= '华为';
company.address = '北京';
company.produce = function(message)
{
 alert(message);
}

2.使用JavaScript中的Object类型

company= new Object();
company.name= '淘宝';
company.address = '杭州';
company.produce= function(message)
{
 alert(message);
}

3.通过创建函数来生成对象

company = function()
{
  this.name = '新浪';
  this.address = '北京';
  this.produce = function(message)
  {
  alert(message);
  }
}

4.利用浏览器window对象

window.name = '腾讯';
window.address = '北京';
window.produce = function(message)
{
  alert(message);
}

扩展:

1.对象复制

emptyObject = new Object();
company.apply = function(o, c,)
{
  if(o && c && typeof c == 'object')
  {
  for(var p in c)
  {
  o[p] = c[p];
  }
  }
  return o;
};
emptyObject = Ext.apply(emptyObject,company);

2.对象复制(函数方式)

var copyOO = new Function();
copyOO.prototype = company;
var newcopyOO = new copyOO();

希望本文所述对大家JavaScript程序设计有所帮助。

时间: 2015-12-15

JS中多种方式创建对象详解

1.内置对象创建 var girl=new Object(); girl.name='hxl'; console.log(typeof girl); 2.工厂模式,寄生构造函数模式 function Person(name){ var p=new Object();//内部进行实例化 p.name=name; p.say=function(){ console.log('my name is '+ p.name); } return p;//注:一定要返回 } var girl=Person('

js创建对象的几种常用方式小结(推荐)

第一种模式:工厂方式 复制代码 代码如下: var lev=function(){ return "我们"; }; function Parent(){ var Child = new Object(); Child.name="脚本"; Child.age="4"; Child.lev=lev; return Child; }; var x = Parent(); alert(x.name); alert(x.lev()); 说明: 1.在函数

学习javascript面向对象 掌握创建对象的9种方式

本文为大家分享了javascript创建对象的9种方式,供大家参考,具体内容如下 [1]使用Object构造函数 [缺点]使用同一个接口创建很多对象,会产生大量重复代码 var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"; person.sayName = function(){ alert(this.name);

js创建对象几种方式的优缺点对比

比较js中创建对象的几种方式 1.工厂模式 function createObj(name, sex){ var obj = new Object(); obj.name = name; obj.sex = sex; obj.sayName = function(){ alert(this.name); } return obj; } var person = createObj('Tom', 'man'); 缺点:①无法确定对象的类型(因为都是Object). ②创建的多个对象之间没有关联.

JS对象创建的几种方式整理

最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式.话不多说,直接步入正题. 第一种:Object构造函数创建 var Person = new Object(); Person.name = 'Nike'; Person.age = 29; 这行代码创建了Object引用类型的一个新实例,然后把实例保存在变量Person中. 第二种:使用对象字面量表示法 var Person = {};//相当于var Person = new Object(); var Person =

js中创建对象的几种方式

前言 不管是哪门语言,千变万化不离其宗,深入理解其本质,方能应用自如.对应到js,闭包,原型,函数,对象等是需要花费大功夫思考.理解的.本文穿插了js原型和函数的相关知识,讨论了批量创建对象的几种方式以及它们的优缺点. 正文 说起创建对象,最容易想到的便是通过对象字面量方式直接定义一个对象吧,但这种方式只能创建少量,单独且相互间无联系的对象.若要批量创建对象,该如何? 工厂模式 工厂模式非常直观,将创建对象的过程抽象为一个函数,用函数封装以特定接口创建对象的细节.如下所示: function c

js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)

在上篇文章给大家介绍了javascript面向对象基础,本篇文章继续深入学习javascript面向对象,JS的语法非常灵活,简单的对象创建就有好几种不同的方法.这些过于灵活的地方有时候确实很让人迷惑,那么今天我们就来梳理一下JS中常用的创建对象的几种方法吧. 前言 虽然使用 Object构造函数 或者使用 对象字面量 可以很方便的用来创建一个对象,但这种方式有一个明显的缺点:使用一个接口创建多个对象会产生很多冗余的代码.因此为了解决这个问题,人们开始使用以下几种方式来常见对象. 工厂模式 该模

javascript创建对象、对象继承的实用方式详解

本文约定:不特殊声明的情况下,属性代指属性或方法. 创建对象.对象继承实际上是一回事:我们所需要的实例对象通过构造函数获得私有属性.通过原型链获得共享的属性.什么是好的方式?私有属性通过构造函数的方式获得(不考虑实例中自定义私有属性)且不需要重写,共享属性通过原型链找到且不需要重复创建. 普适的方式 组合使用构造函数模式和原型模式创建对象 function HNU_student(name) { this.name = name; this.sayName = function() { retu

js中创建对象的几种方式示例介绍

JavaScript中的所有事物都是对象:字符串.数组.数值.函数等.JS中并没有类的概念, 但我们可以利用JS的语法特征,以类的思想来创建对象. 原始方法 复制代码 代码如下: <script type="text/javascript"> var obj = new Object(); obj.name = "Koji"; //为对象添加属性 obj.age = 21; obj.showName = function(){ //为对象添加方法 ale

js创建对象的方式总结

本文实例总结了js创建对象的方式.分享给大家供大家参考.具体如下: 复制代码 代码如下: <script type="text/javascript"> //1. 通过字面值来创建对象 var obj = {hobby:'篮球',girlf:'美女'}; document.write(obj.hobby + '和' + obj['girlf']); //2. 通过new Object方式来创建对象,Object为系统自带的构造函数 var obj2 = new Object

JS创建对象几种不同方法详解

本文介绍了几种js创建对象的方法,分享给大家供大家参考,具体内容如下 1.工厂模式 弊端:没有解决对象的识别问题,即怎么知道一个对象的类型. 2.构造函数模式 与工厂模式相比: 1.没有显式的创建对象 2.直接将属性和方法赋给了this对象 3.没有return语句 要创建person的实例,必须使用new操作符,以这种方式调用构造函数实际上会经历4个步骤: 1.创建一个新对象 2.将构造函数的作用域赋给新对象 3.执行构造函数中的代码 4.返回新对象 创建自定义的构造函数可以将它的实例标识为一

详解js 创建对象的几种方法

在js中创建对象的方法可分为6种,分别是:基本模式.工厂模式.构造函数模式.原型模式.组合模式.动态原型模式,接下来分别看下这几种模式的写法吧 一.基本模式 var person = new Object(); person.name = "孙悟空"; person.weapon = "棒子"; person.run = function () { return this.name + "武器是" + person.weapon; } 二.工厂模

javascript面向对象创建对象的方式小结

本文实例讲述了javascript面向对象创建对象的方式.分享给大家供大家参考,具体如下: 方式一:通过内置Object对象的方式创建 然后通过点语法,动态给对象创建属性,方法 var o1 = new Object(); o1.name = 'Tom'; o1.sing = function() { console.log('I am singing'); } 方式二:通过字面量json形式创建对象 var o2 = { "name":"jackson", &qu

详解js创建对象的几种方法及继承

创建对象 通过Object构造函数或对象字面量创建单个对象 这些方式有明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为了解决这个问题,出现了工厂模式. 工厂模式 考虑在ES中无法创建类(ES6前),开发人员发明了一种函数,用函数来封装以特定接口创建对象的细节.(实现起来是在一个函数内创建好对象,然后把对象返回). function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.j

JS 创建对象(常见的几种方法)

贴个代码先: function O(user,pwd){ //use constructor this.user=user; this.pwd=pwd; this.get=get; return this; } function O2(user,pwd){ //use factory var obj=new Object(); obj.user=user; obj.pwd=pwd; obj.get=get; return obj; } function O3(){ //use prototype

使用requirejs模块化开发多页面一个入口js的使用方式

描述 知道requirejs的都知道,每一个页面需要进行模块化开发都得有一个入口js文件进行模块配置.但是现在就有一个很尴尬的问题,如果页面很多的话,那么这个data-main对应的入口文件就会很多.理论这样其实也没什么,但是到后面用grunt进行合并压缩就会有很多入口js,虽然这个入口js都把配置的模块内容都压缩到里面了,但是各个入口合并压缩后的文件中其实都有很多重合的代码,所以考虑到这个就想到把所以的入口文件都统一了,使用一个,到时候用grunt合并压缩也只有这么一个入口文件,也很方便. 实

js函数调用的方式

Js函数调用的方式有如下几种情况: (1)具名函数直接调用 复制代码 代码如下: function foo()  {  }  foo(); (2)匿名函数通过引用来调用 复制代码 代码如下: fooRef = function()  {  }fooRef(); (3)没有引用的匿名函数调用1 复制代码 代码如下: (function() {}()); (4)没有引用的匿名函数调用2 复制代码 代码如下: (function() { })(); (5)没有引用的匿名函数调用3  复制代码 代码如下

使用Webpack提高Vue.js应用的方式汇总(四种)

Webpack是开发Vue.js单页应用程序的重要工具. 通过管理复杂的构建步骤,你可以更轻松地开发工作流程,并优化应用程序的大小和性能. 其中介绍下面四种方式: 单个文件组件 优化Vue构建 浏览器缓存管理 代码分割 1.单个文件组件 Vue的特殊功能之一是使用HTML作为组件模板. 尽管如此,它们还有一个内在的问题:你的HTML标记需要是一个尴尬的JavaScript字符串, 否则你的模板和组件定义将需要在单独的文件中,使其难以使用. Vue有一个优雅的解决方案,称为单文件组件(SFC),其