探讨javascript是不是面向对象的语言


Posted in Javascript onNovember 21, 2013

1 它拥有对象,可以包含数据和处理数据的方法。对象可以包含其它对象。他没有类(在javascript2.0真正实现之前),但它却有构造器可以做类能做的事,包括扮演变量和方法的容器和角色。他没有基于类的继承,但它有基于原型的继承。两个建立对象系统的方法是通过继承和通过聚合。javaScript两个都有。

2 一些评价说javascript不是真正面向对象的因为它不能提供信息的隐藏。也就是,对象不能有私有变量和私有方法:所有的成员都是公共的。但随后有人证明了javaScript对象可以拥有私有变量和私有方法。另外还有批评说javascript不能提供继承,但随后有人证明了javascript不仅能支持传统的继承还能应用其他的代码复用模式。

3 说javascript是一种基于对象的语言,是一种正确而略显保守的判断,而说javascript不面向对象,在我看来则是错误的认知,事实上有充足的理由证明javaScript是一种面向对象的语言,只是与传统的基于类的面向对象相比,javaScript有它与众不同的地方,这种独特性我们称它为基于原型的面向对象。

-----------------------------------------

因为js是弱类型语言.不像c++,C#这类型语言!他不支持函数方法重载.你之前写一个方法.后面再写一个相同名字的方法他默认会把上一个方法覆盖掉!这种情况和PHP中相同!

他不像是C#等语言支持函数重载.根据不同的参数.返回值调用不同的方法!

关于JS是不是面向对象.他不完全是面向对象,他也可以写成类,方法,属性.但是和其它的语言稍有不同!比如
var cls={
my:{a:0},
init:function()
{
  alert(this.my.a);
}
};
window.onload=function()
{
cls.init();
}

调用cls.init();

这就是他的类,但是缺少了好多面向对象的一些特性.楼上说的很清楚!所以说他不是完全面向对象

面向对象只是一种思路一种解决问题的思路!

Javascript 相关文章推荐
js获取下拉列表的值和元素个数示例
May 07 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
jQuery+Ajax实现无刷新操作
Jan 04 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
Nov 09 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
layer弹出层取消遮罩的方法
Sep 25 Javascript
原生js+canvas实现验证码
Nov 29 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 #Javascript
Javascript对象属性方法汇总
Nov 21 #Javascript
获得Javascript对象属性个数的示例代码
Nov 21 #Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
Nov 21 #Javascript
浅析JavaScript中的常用算法与函数
Nov 21 #Javascript
非常漂亮的JS+CSS图片幻灯切换特效
Nov 20 #Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 #Javascript
You might like
一个SQL管理员的web接口
2006/10/09 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
javascript 面向对象编程基础 多态
2009/08/21 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
django中瀑布流写法实例代码
2019/10/14 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
中学教师岗位职责
2013/11/26 职场文书
自我鉴定注意事项
2014/01/19 职场文书
小学生安全保证书
2014/02/01 职场文书
邓小平理论心得体会
2014/09/09 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书