JavaScript面向对象:创建对象
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面向对象:创建对象的更多相关文章
- Javascript面向对象——创建对象、构造函数的原型
Javascript面向对象--创建对象.构造函数的原型 其实:JavaScript中的创建类,就是创建一个构造函数,在创建对象时用到new这个关键字, 一.创建对象 1.函数创建对象 functio ...
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- JavaScript学习总结(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- javascript面向对象系列第四篇——选项卡的实现
前面的话 面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它.本文将用面向对象的技术来制作一个简单的选项卡 图示说明 由图示结果看到,这是一个非常简单的选项卡. ...
- javascript面向对象系列第三篇——实现继承的3种形式
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...
- javascript面向对象系列第一篇——构造函数和原型对象
× 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...
- 【转】javascript面向对象编程
摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...
- JavaScript 面向对象(二) —— 案例篇
看案例前可以先看看基础篇:JavaScript 面向对象(一) —— 基础篇 案例——面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...
- JavaScript 面向对象(一) —— 基础篇
学好JS的面向对象,能很大程度上提高代码的重用率,像jQuery,easyui等,这篇博客主要从细节上一步步讲JS中如何有效地创建对象,也可以看到常见的创建对象的方式,最后也会附上一些JS面向对象的案 ...
随机推荐
- reactNative性能优化
本文将简单介绍一下我所收集到的React Native应用优化方法,希望对你有所启发.很多方法也是适用React web应用的. 包体积优化 无论是热更新方案走网络下载js,还是直接将js打进apk, ...
- MyISAM与InnoDB的索引实现区别
一 MyISAM索引实现 1. 主键索引 MyISAM引擎使用B+树作为索引结果,叶节点的data域存放的是数据记录的地址.下图为MyISAM表的主索引,Col1为主键. 2. 辅助索引 在MyISA ...
- 互联网 Java 工程师进阶知识完全扫盲
互联网 Java 工程师进阶知识完全扫盲:https://github.com/doocs/advanced-java
- k8s集群———flannel网络
#master执行将内网通信地址写入etcd中,确保flannel能与etcd通信 #添加 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem - ...
- iptables匹配端口范围,映射,网络状态
####匹配端口范围:iptables -I INPUT -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT <==次选iptables -I I ...
- 从零开始のcocos2dx生活(十)ScrollView
目录 简介 基础变量 ScrollViewDelegate Direction _dragging _container _touchMoved _bounceable _touchLength 方法 ...
- QT信号和槽函数学习笔记
//connect 函数有4个参数 分别是 发送者 信号.接受者 ,槽 //connect(sender,signal,receiver,slot) /* * 信号和槽 * 信号 就是一个普通的函数 ...
- 【题解】AcWing 110. 防晒(普及题)
[题解]AcWing 110. 防晒(普及题) AcWing 110. 防晒 你没有用过的全新OJ 嘿嘿水水题. 题目就是一维坐标轴上给定多个线段,给定多个点,点在线段上造成贡献,点可以重复,问最大贡 ...
- 洛谷$P2168\ [NOI2015]$荷马史诗 贪心
正解:贪心 解题报告: 传送门$QwQ$ 昂这个就哈夫曼树板子题鸭$QwQ$,只是从二叉变成多叉了$QwQ$ 考虑用类似合并果子的方法?就从两个变成$k$个了嘛,一样的鸭,然后就做完了$QwQ$ 注意 ...
- SpringBoot原理分析与配置
1.1 起步依赖原理分析 1.1.1 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spri ...