1.初级创建对象

    var oCar=new Object;
oCar.color='red';
oCar.door=4;
oCar.map=3;
oCar.showColor=function () {
// body...
alert(this.color);
}
console.log(oCar);
缺点:需要创建多个Car实例

2.工厂函数创建对象

   function showColor(){
alert(this.color)
}
function createCar(sColor,iDoors,iMpg) {
var oTempCar=new Object;
oTempCar.color=sColor;
oTempCar.door=iDoors;
oTempCar.mpg=iMpg;
oTempCar.showColor=showColor;
return oTempCar;
}
var oCar1=createCar('red',2,23);
oCar1.showColor();

缺点:看起来不像是对象的方法

3.构造函数创建对象

    function Car(sColors,iDoors,iMpg) {
// body...
this.color=sColors;
this.iDoors=iDoors;
this.iMpg=iMpg;
this.showColor=function(){
alert(this.color);
}
} var oCar1=new Car('red',4,23);
var oCar2=new Car('blue',5,24)

优点:内部不需要创建对象,this直接可以访问; 缺点:会重复生成函数

4.原型方式创建对象

   function Car() {
// body...
}
Car.prototype.color='red';
Car.prototype.doors=4;
Car.prototype.mpg=23;
Car.prototype.drivers=['wang','xia'];
Car.prototype.showColor=function(){
alert(this.color);
} var oCar1=new Car();
var oCar2=new Car(); oCar1.drivers.push('yun'); console.log(oCar2.drivers);

缺点:没有参数,属性指向对象,对象共享,Car1修改,Car2也会跟着修改

5.混合构造/原型方式


   function  Car(sColor,iDoor,iMpg) {
this.color=sColor;
this.doors=iDoor;
this.mpg=iMpg;
this.drivers=new Array("Mike","Sue");
} Car.prototype.showColor=function(){
alert(this.color)
} var oCar1=new Car('red',4,23);
var oCar2=new Car('blue',5,24); oCar1.drivers.push('yun');
console.log(oCar1.drivers);
console.log(oCar2.drivers);

构造函数定义非函数属性;原型定义函数属性

6.动态原型方式


   function Car(sColor,iDoor,iMpg){
this.color=sColor;
this.door=iDoor;
this.mpg=iMpg;
this.driver=new Array('Mike','Sue'); if(typeof Car._initialized=="undefined"){
Car.prototype.showColor=function(){
alert(this.color);
}
} Car._initialized=true;
}

JavaScript面向对象:创建对象的更多相关文章

  1. Javascript面向对象——创建对象、构造函数的原型

    Javascript面向对象--创建对象.构造函数的原型 其实:JavaScript中的创建类,就是创建一个构造函数,在创建对象时用到new这个关键字, 一.创建对象 1.函数创建对象 functio ...

  2. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  3. JavaScript学习总结(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  4. javascript面向对象系列第四篇——选项卡的实现

    前面的话 面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它.本文将用面向对象的技术来制作一个简单的选项卡 图示说明 由图示结果看到,这是一个非常简单的选项卡. ...

  5. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  6. javascript面向对象系列第一篇——构造函数和原型对象

    × 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...

  7. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  8. JavaScript 面向对象(二) —— 案例篇

    看案例前可以先看看基础篇:JavaScript 面向对象(一) —— 基础篇 案例——面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...

  9. JavaScript 面向对象(一) —— 基础篇

    学好JS的面向对象,能很大程度上提高代码的重用率,像jQuery,easyui等,这篇博客主要从细节上一步步讲JS中如何有效地创建对象,也可以看到常见的创建对象的方式,最后也会附上一些JS面向对象的案 ...

随机推荐

  1. Python反射笔记

    通过字符串的形式,导入模块.使用__import__ In [3]: SYS = __import__("sys") In [4]: SYS.path 如果导入模块在多级文件夹下 ...

  2. tag的使用

    tag = True while tag: print("level") choice = input("level>>>").strip() ...

  3. 聊聊多线程哪一些事儿(task)之 二 延续操作

    hello,又见面啦,昨天我们简单的介绍了如何去创建和运行一个task.如何实现task的同步执行.如何阻塞等待task集合的执行完毕等待,昨天讲的是task的最基本的知识点,如果你没有看昨天的博客, ...

  4. Go处理PDF

    工作中经常会遇到一些pdf文件处理的问题,一千种pdf有一千种处理方式,每次都是绞尽脑汁和这些pdf战斗到底. 本人又是一个gopher,所以这篇文章会以一个goper的视角,列举一下我所经历过的每一 ...

  5. echarts实现group关系图案例

    官网案例:https://www.echartsjs.com/examples/zh/editor.html?c=graph-simple 自己在项目中实现了两个group图: 1.先看实现效果,两个 ...

  6. CPP STL学习笔记

    STL的概念 源地址  https://www.ev0l.art/index.php/archives/15/ <li> Iterator (迭代器)<li> Containe ...

  7. 「洛谷P1262」间谍网络 解题报告

    P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...

  8. 小小知识点(三十八)MPSK和MQAM调制的实现——利用IQ调制

    IQ调制的原理 (一)调制基本原理 (二)调制基本原理 利用IQ调制实现MPSK(QPSK 8PSK BPSK)和MQAM(16QAM 64QAM)调制     (一)利用IQ调制实现QPSK调制   ...

  9. 23.python虚拟环境配置

    1.安装 virtualenvwrapper-win pip3 install virtualenvwrapper-win 2.然后使用workon查看是否安装成功(workon是简化操作的神级命令之 ...

  10. 假设检验的Python实现

    结合假设检验的理论知识,本文使用Python对实际数据进行假设检验. 导入测试数据 从线上下载测试数据文件,数据链接:https://pan.baidu.com/s/1t4SKF6U2yyjT365F ...