js创建对象的四种方式
(1)对象字面量
var clock = {
hour:12,
minute: 10,
second: 10,
showTime: function(){
alert(this.hour + ":" + this.minute + ":" + this.second);
}
}
(2)创建Object实例
var clock = new Object();
clock.hour = 12;
clock.minute = 10;
clock.second = 10;
clock,showTime = function(){
alert(this.hour + ":" + this.minute + ":" + this.second);
}
使用Object实例方式创建的对象,可以动态的添加或修改属性和方法。
对象的创建模式
(1) 工厂模式
function createClock(hour, minute, second){
var clock = new Object();
clock.hour = hour;
clock.minute = minute;
clock.second = second;
clock.showTime = function(){
alert(this.hour + ":" + this.minute + ":" + this.second);
}
return clock;
}
工厂模式,即给出参数得到对象,把创建对象的过程封装起来,不能识别对象的类型。
(2)构造函数模式
function clock(hour, minute, second){
this.hour = hour;
this.minute = minute;
this.second = second;
this.showTime = function(){
alert(this.hour + ":" + this.minute + ":" + this.second);
}
}
构造函数模式创建对象时,应该注意以下几点:必须用new关键字,如果不用new关键字,此时就不会把clock当成构造函数使用了,而是当一个普通的函数,此时可能会给window全局作用域意外添加属性;由于实例话的时候,this指针会指向新的实例,每次实例化都要重建方法。
(3) 原型模式
不同于构造函数模式,原型模式是把所有的属性和方法都写在对象的prototype对象中。此模式的缺点是:不同实例不能拥有属于各自的私有属性,所有属性都是共享的。
function clock(hour,minute,second){
}
clock.prototype.hour=12;
clock.prototype.minute=12;
clock.prototype.second=12;
clock.prototype.showTime=function(){
alert(this.hour+":"+this.minute+":"+this.second);
}
(4)构造-原型模式
结合(2)和(3),此模式采用属于实例的私有属性放到构造函数中,属于实例的公共属性和方法放到对象的原型中。
function clock(hour,minute,second){
this.hour = hour;
this.minute = minute;
this.second = second;
}
clock.prototype.showTime=function(){
alert(this.hour+":"+this.minute+":"+this.second);
}
js创建对象的四种方式的更多相关文章
- JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)
// 对象:特指的某个事物,具有属性和方法(一组无序的属性的集合) // 特征------>属性 // 行为------>方法 // 创建对象的四种方式 1 // 1.字面量的方式,就是实 ...
- Java基础知识强化25:Java创建对象的四种方式
1. Java程序中对象的创建有四种方式: ● 调用new语句创建对象,最常见的一种 ● 运用反射手段创建对象,调用java.lang.Class 或者 java.lang.reflect.Const ...
- 第184天:js创建对象的几种方式总结
面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单 ...
- js创建对象的三种方式和js工厂模式创建对象
文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数 ...
- js创建对象的三种方式
<script> //创建对象的三种方式 // 1.利用对象字面量(传说中的大括号)创建对象 var obj1 = { uname: 'ash', age: 18, sex: " ...
- js创建对象的几种方式
/** * 顺便重温一下对象的创建方式 * 代码简单说明问题就好 * 概念性的东西这里就不提了,只加上自己简单理解 */ /** * 工厂模式,就是将手动的创建细节封装在一个方法里, * return ...
- JS 创建对象的几种方式
面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无 ...
- JS创建对象的几种方式整理
javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一:通过“字面量”方式创建对象 方法:将 ...
- js创建对象的6种方式
一.工厂模式 function createStudent(name,age){ var o=new Object(); o.name=name; o.age=age; o.myName=functi ...
随机推荐
- Codeforces Round #284 (Div. 2) C题(计算几何)解题报告
题目地址 简要题意: 给出两个点的坐标,以及一些一般直线方程Ax+B+C=0的A.B.C,这些直线作为街道,求从一点走到另一点需要跨越的街道数.(两点都不在街道上) 思路分析: 从一点到另一点必须要跨 ...
- Debian 7环境安装TightVNC+Gnome远程桌面环境
昨天下午的时候一个Hostus网友希望在购买的VPS主机中安装桌面环境用来跑软件项目,其实也是我们很多用户习惯的VNC桌面,毕竟在LINUX服务器中也无法去安装WINDOWS系统,尤其是OPENVZ架 ...
- js 控制表单提交
<form id="form2"> <input type="text" name="text" value=" ...
- EasyUI之加载js文件顺序
在使用EasyUI时,需要引用EasyUI框架的js文件,要注意加载的顺序,jquery.min.js一定要第一个被加载.
- 查找n个数字中的最大值
闲来无事,试试用arg_list查找n个数字中的最大者. 又因为本人喜欢模板, 所以就早早的写了以下代码, 没有经过严格测试. /*********************************** ...
- 杭电ACM1000
#include <stdio.h> int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) { p ...
- XPath
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. XPath的需要理解的相关概念 ...
- JAVA第二次作业展示与学习心得
JAVA第二次作业展示与学习心得 在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来.具体的使用方法和其他得组件并没有什么大的不同. 另外我通过查阅资料使用 ...
- svn回滚版本
1.本地修改了内容,但是没有commit可以通过Revert-来覆盖当前版本. 2.已经commit了.首先第一步,应该知道需要回滚的版本编号, 第二步,选择 updata to revision
- VMware-workstation-full-12.0.0-2985596&VMware-player-12.0.0-2985596
VMware-workstation-full-12.0.0-2985596 永久KEY:YV3D2-A0D50-481XP-KPNGE-ZV2ZF VMware-player-12.0.0-2985 ...