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的朋友一点学习经验小结
Nov 23 Javascript
js 通用javascript函数库整理
Aug 14 Javascript
js格式化时间和js格式化时间戳示例
Feb 10 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
js实现图片在未加载完成前显示加载中字样
Sep 03 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 jQuery
自定义事件解决重复请求BUG的问题
Jul 11 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
JS实现鼠标移动拖尾
Dec 27 Javascript
js数组的基本使用总结
Jan 18 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删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php实现倒计时效果
2015/12/19 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python实现用户管理系统
2018/01/10 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
伦敦一卡通:The London Pass
2018/11/30 全球购物
C语言面试题
2015/10/30 面试题
C#实现启动一个进程
2016/10/01 面试题
园林毕业生自我鉴定范文
2013/12/29 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
十一酒店活动方案
2014/02/20 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书