`
m635674608
  • 浏览: 4932074 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

js创建对象的几种常用方式

    博客分类:
  • 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.在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法 
2.引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent();因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象 
3.在函数的最后返回该对象 
4.不推荐使用这种方式创建对象,但应该了解 
第二种模式:构造函数方式 

复制代码代码如下:

var lev=function(){ 
return "脚本之家"; 
}; 
function Parent(){ 
this.name="脚本"; 
this.age="30"; 
this.lev=lev; 
}; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev()); 


说明: 
1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return 
2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外 
3..同样的,不推荐使用这种方式创建对象,但仍需要了解 
第三种模式:原型模式 

复制代码代码如下:

var lev=function(){ 
return "脚本之家"; 
}; 
function Parent(){ 

}; 
Parent.prototype.name="李小龙"; 
Parent.prototype.age="30"; 
Parent.prototype.lev=lev; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev()); 


说明: 
1.函数中不对属性进行定义 
2.利用prototype属性对属性进行定义 
3.同样的,不推荐使用这样方式创建对象 
第四种模式:混合的构造函数,原型方式(推荐) 

复制代码代码如下:

function Parent(){ 
this.name="脚本"; 
this.age=4; 
}; 
Parent.prototype.lev=function(){ 
return this.name; 
};; 
var x =new Parent(); 
alert(x.lev()); 


说明:1.该模式是指混合搭配使用构造函数方式和原型方式 
2.将所有属性不是方法的属性定义在函数中(构造函数方式) 
将所有属性值为方法的属性利用prototype在函数之外定义(原型方式) 
3.推荐使用这样方式创建对象,这样做有好处和为什么不单独使用构造函数方式和原型方式,由于篇幅问题这里不予讨论 
第五种模式:动态原型方式 

复制代码代码如下:

function Parent(){ 
this.name="脚本"; 
this.age=4; 

if(typeof Parent._lev=="undefined"){ 

Parent.prototype.lev=function(){ 
return this.name; 
} 
Parent._lev=true; 
} 
}; 

var x =new Parent(); 
alert(x.lev()); 


说明: 
1.动态原型方式可以理解为混合构造函数,原型方式的一个特例 
2.该模式中,属性为方法的属性直接在函数中进行了定义,但是因为 

复制代码代码如下:

if(typeof Parent._lev=="undefined"){ 

Parent._lev=true;} 


从而保证创建该对象的实例时,属性的方法不会被重复创建 
3.,推荐使用这种模式

分享到:
评论

相关推荐

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

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

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

    这些过于灵活的地方有时候确实很让人迷惑,那么今天我们就来梳理一下JS中常用的创建对象的几种方法吧。 前言 虽然使用 Object构造函数 或者使用 对象字面量 可以很方便的用来创建一个对象,但这种方式有一个明显的...

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

    最近在看javascript高级程序设计,其中对对象的创建做了具体的阐述,综合起来,总结了下(je知识库javascript专栏由这方面的教程,有兴趣的可以去知识库看看)

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

    方便学习js类的朋友,让你快速的掌握js类的定义方法,方法有很多种,结果都一样。大家可以根据自己的爱好选用。

    javascript中创建对象的几种方法总结

    以下几种,是javascript中最常用的创建对象的方式。初学者看到后,可能会晕掉,甚至会觉得担心。其实完全不用担心,这些种方式,只需要掌握一两种,对其他的几种只需要理解就好了

    js中的面向对象之对象常见创建方法详解

    创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 使用object var student = new Object(); student....

    JavaScript创建对象的四种常用模式实例分析

    本文实例讲述了JavaScript创建对象的四种常用模式。分享给大家供大家参考,具体如下: 这里介绍了javascript中创建对象常用的几种模式,包括:工厂模式,构造函数模式,原型模式,组合构造函数与原型的模式,动态...

    JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】

    本文实例讲述了JS常见创建类的方法。分享给大家供大家参考,具体如下: Javascript是一种基于对象的...接下来我们介绍一下在JS中创建类的几种方式: 1.工厂方式: //通过工厂方式创建对象,先定义一个工厂方法 functi

    JavaScript对象创建模式实例汇总

    常用的创建对象的模式有以下几种: 一. 工厂模式 工厂模式抽象了具体对象的过程,用函数来封装以特ing接口创建对象的细节。 如下: function createAnimal(name, age) { var o = new Object(); o.name = name; o...

    JS实现继承的几种常用方式示例

    本文实例讲述了JS实现继承的几种常用方式。分享给大家供大家参考,具体如下: 1,原型链继承 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>原型链继承&lt...

    深入理解javascript构造函数和原型对象

    常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = ...

    JavaScript 常见对象类创建代码与优缺点分析

    几种javascript类定义方式中,最常用的是杂合prototype/constructor 和 动态prototype方式。

    深入浅析JavaScript面向对象和原型函数

    下面给大家介绍下常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = tangwei; gf.bar = c++; gf....

    前端面试宝典V3.0.docx

    5、Javascript 创建对象的几种方式? (必会) 79 6、请指出 JavaScript 宿主对象和原生对象的区别?(必会) 81 7、 JavaScript 内置的常用对象有哪些?并列举该对象常用的方法?(必会) 82 8、 === 和 ==的区别?...

    107个常用javascript语句

    107个常用javascript语句 -7.焦点 .focus(); -6.捕获对象通用方法 function $(obj) {return document.getElementById(obj);} ("") %> -5.字符串赋值数组var array=new Array(); array=tdrczpdata.split('<BR>'); ...

    JavaScript笔记

    14.Function:js中一切都是对象,连方法都是1个对象!! 笔试题:js中方法定义集中方式: A:function compare(a,b){return a-b;}---*可以任意地方声明方法* B:var compare=function(a,b){return a-b;} ---| --...

    wenfujie#document-library#原型以及原型链1

    使用构造函数创建对象原型小结原型链js中继承的几种方法原型链继承借用构造函数继承组合继承原型式继承寄生式继承(常用)寄生组合式继承使用构造函数创建对象var p

Global site tag (gtag.js) - Google Analytics