javascript 面向对象编程 万物皆对象


Posted in Javascript onSeptember 17, 2009

javascript和java、C#等语言一样也具有面向对象的一些特征,但细比较的时候,会发现这些特征并不是真正的面向对象,很多地方都是利用对象本身来模拟面向对象,所以认为javascript不能算是面向对象编程语言,而是基于对象的语言。
在javascript中真的是万物皆对象,new出来的东西是对象,方法是对象,连类也都是对象。下面分别来看一下对象、方法和类的对象特征。
1.拿内置的Date来看一下吧

var time = new Date(); 
var timeString = time.getFullYear() + "-" + 
time.getMonth() + "-" + 
time.getDate() + " " + 
time.getHours() + ":" + 
time.getMinutes() + ":" + 
time.getSeconds(); 
document.write(timeString);

通过 time来操作其所引用的Date对象,可以方便的调用Date的对象所包含的一系列getXX()方法来获取年月日时分秒等信息。
可以再看一下String
var username = new String("hello world"); 
document.write(username.length);

变量username引用了new出来的字符串对象,通过username访问字符串对象的length属性。
2.方法也是对象
function hello() { 
alert("hello"); 
}; 
var helloRef = hello; 
helloRef();

hello是一个方法,helloRef是一个引用了hello方法的变量,helloRef和hello一样都指向了相同的方法对象。也就意味着helloRef也可以执行,helloRef()。同理也可以写出以下代码。
var helloRef = function() { 
alert("hello"); 
}; 
helloRef();

function(){alert(“hello”)}是一个匿名方法,当然也是对象,用helloRef变量引用该方法对象后,可以通过helloRef来调用方法。
3.那么类呢?当然类也是对象,在javascript中,不像C#或java那样有class关键字用来创建类,而是直接使用方法的关键字来创建类或者叫模拟类。
function Person(username, age) { 
this.Name = username; 
this.Age = age; 
this.Introduce = function() { 
alert("我叫" + this.Name + ",今年" + this.Age + "岁了。"); 
}; 
}; 
var person1 = new Person("张三", 20); 
person1.Introduce();

以上创建了一个Person类型,Person带有构造参数username和age,通过创建的Person对象可以调用Person所包含的方法Introduce。下面对代码做一些修改。
function Person(username, age) { 
this.Name = username; 
this.Age = age; 
this.Introduce = function() { 
alert("我叫" + this.Name + ",今年" + this.Age + "岁了。"); 
}; 
}; 
var PersonClass = Person; 
var person1 = new PersonClass("张三", 20); 
person1.Introduce();

重新声明新的变量PersonClass并引用Person类,PersonClass和Person都指向了原来的Person所引用的类,所以也可以用PersonClass来创建对象。
以上的几个例子可能不是很恰当,但也可以一窥javascript中万物皆对象。
下一节详细的谈一谈javascript中的对象。
Javascript 相关文章推荐
JavaScript实际应用:innerHTMl和确认提示的使用
Jun 22 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
使用vue for时为什么要key【推荐】
Jul 11 Javascript
利用vue3+ts实现管理后台(增删改查)
Oct 30 Javascript
javascript 面向对象编程 function也是类
Sep 17 #Javascript
类似CSDN图片切换效果脚本
Sep 17 #Javascript
var与Javascript变量隐式声明
Sep 17 #Javascript
html数组字符串拼接的最快方法
Sep 16 #Javascript
在IE下获取object(ActiveX)的Param的代码
Sep 15 #Javascript
javascript 检测浏览器类型和版本的代码
Sep 15 #Javascript
不安全的常用的js写法
Sep 15 #Javascript
You might like
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
js读取cookie方法总结
2014/10/31 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
个人简历中自我评价
2014/02/11 职场文书
学生会招新策划书
2014/02/14 职场文书
酒店端午节促销方案
2014/02/18 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
保护环境建议书100字
2014/05/13 职场文书
欢度春节标语
2014/07/01 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript