javascript面向对象2

原文:javascript面向对象2

首先我们先创建一个对象

var user = Object();
user.name = "张三";
user.age = 20;
user.sex = "男";

上面呢创建了一个对象,当然创建对象的方法有很多种,但是用这样的方法创建对象比较简单直观,也是JavaScript种创建对象最基本的方法。

同时呢也出现了另外一个弊端,当我们想要创建多个对象的时候,我们就要写很多重复的代码,这样一来就增加了代码量,减少了工作的效率,

为了解决这样的问题,我们可以使用一种叫做工厂模式的方法,这种方法 就是为了解决实例化对象产生大量重复代码的问题。

那么现在我们来看一下什么是工厂模式,有什么好处?

 

function test(name,age,sex){
    var user = new object();
          user.name = name;
          user.age = age;
          user.sex = sex;
          user.obj = function (){
                 return  this.name+"    "+this.age+"      "+this.sex;
          }
          return  user;
}

var  obj1 = test('张三',20,'男');
var  obj2 = test('李四',20,'男');

alert(obj1.obj);
alert(obj2.obj);

这样呢就解决了创建重复的对象的问题了.

 

从上面的代码我们可以看出,工厂模式解决了实例化时代码大量重复的问题,但又出现了一个问题,那就是识别问题,我们根本无法弄清楚他们到底是哪个对象的实例。比如

alert(typeof obj1);  //Object

alert(obj1 instanceof Object);  //true

以上代码标明obj1是Object对象,但是我们无法知道具体是哪一个对象创建的。

 

构造函数(构造方法)

function User(name, age) {    //构造函数模式
  this.name = name;
  this.age = age;
  this.show = function () {
    return this.name  + ' '+this.age;
  };
}  

创建对象的时候用new运算符就可以了:

var user1 = new User('bclz', 30);    //第一个实例
var user2 = new User('bcxb', 20);    //第二个实例

现在我们就可以检测user1或者user2是不是属于User。

alert(user1 instanceof User);//true

可见,使用构造函数的方法,即解决了重复实例化的问题,又解决了对象识别的问题。

时间: 2024-07-31 04:23:30

javascript面向对象2的相关文章

js面向对象 编程: JavaScript 面向对象编程,严格过程的标准化编程法,目前为止最好的 JS 生成对象代码结构

市面上流行了很多 JavaScript 面向对象的编程方法,其中不少都有好些问题.这里总结最正确的 JavaScript 面向对象编程模式.对于类 Special 继承自类 Common 继承自类 Super 的情况,一个 Special 对象的创建,详细说来,应该经历以下步骤.1 确定继承关系1.1 读取 Special 的父类,发现是 Common1.2 读取 Common 的父类,发现是 Super1.3 读取 Super 的父类,发现没有了(隐形父类 Object)2 加载类结构(如果没

JavaScript面向对象的支持(4)

javascript|对象 ================================================================================Qomolangma OpenProject v0.9 类别    :Rich Web Client关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,          DOM,DTHML,CSS,JavaScript,JScript 项目发

JavaScript面向对象的支持(3)

javascript|对象 ================================================================================Qomolangma OpenProject v0.9 类别    :Rich Web Client关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,          DOM,DTHML,CSS,JavaScript,JScript 项目发

JavaScript面向对象的支持(1)

javascript|对象 ================================================================================Qomolangma OpenProject v0.9 类别    :Rich Web Client关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,          DOM,DTHML,CSS,JavaScript,JScript 项目发

JavaScript面向对象的支持(6)

javascript|对象 ======================================================================Qomolangma OpenProject v0.9 类别    :Rich Web Client关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,          DOM,DTHML,CSS,JavaScript,JScript 项目发起:aimingoo

JavaScript面向对象的支持(5)

javascript|对象 ======================================================================Qomolangma OpenProject v0.9 类别    :Rich Web Client关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,          DOM,DTHML,CSS,JavaScript,JScript 项目发起:aimingoo

Javascript面向对象详解(第一部分)

一直想写一篇关于Javascript面向对象的文章,最近终于动工了,本来以为不会写的很长,可是后来发现有很多东西要写,大家先看着这前面的一部分吧,后面有更多的高级特性陆续跟进中,放心,绝对不是太监贴啊,对Javascript对象不太了解或者没有了解的人可以仔细看看哦,有错误之处大家多多指正哦,本人水平有限 (1)为什么要面向对象 在十年前或者也许更晚的时候,javascript都是一种被人当作玩具来使用的语言,大多时候,没有人乐于深入研究它的特性,而只是用它来实现各种花里胡哨的特效来炫耀自己的技

JavaScript面向对象的支持(下)

八.JavaScript面向对象的支持 4. 实例和实例引用 在.NET Framework对CTS(Common Type System)约定"一切都是对象",并分为"值类型"和"引用类型"两种.其中"值类型"的对象在转换成"引用类型"数据的过程中,需要进行一个"装箱"和"拆箱"的过程.在JavaScript也有同样的问题.我们看到的typeof关键字,返回以下六种

JavaScript面向对象程序设计(1) 前言

基于对象还是面向对象? 面向对象技术是现代软件开发中的重要技术之一.面向对象变成的好处毋庸置疑,现在的主流语言如 Java.C++都是面向对象的.现在的面向对象理论更多的是使用Java或C++进行描述,究其根源,在于这 些语言都是传统的面向对象语言,具有面向对象理论所指明的一切特性:类.封装.继承.多态等等. 相比而言,一些动态语言如JavaSript就显得不那么面向对象--至少,在JavaScript中 并没有类class这一关键字.但是,在JavaScript中并不是没有类的概念.于是有人说

深入剖析JavaScript面向对象编程_javascript技巧

二. Javascript 面向对象编程:构造函数的继承 本节主要介绍,如何生成一个"继承"多个对象的实例. 比如,现在有一个"动物"对象的构造函数, function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数, function Cat(name,color){ this.name = name; this.color = color; } 怎样才能使"猫&qu