探讨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 相关文章推荐
json 入门基础教程 推荐
Oct 31 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
巧用canvas
Jan 21 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
详解React native全局变量的使用(跨组件的通信)
Sep 07 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP 高手之路(一)
2006/10/09 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python正则-re的用法详解
2019/07/28 Python
python和JavaScript哪个容易上手
2020/06/23 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
详解Canvas事件绑定
2018/06/27 HTML / CSS
教师推荐信范文
2013/11/24 职场文书
优秀毕业生自我鉴定
2014/01/19 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript
python实现简易自习室座位预约系统
2021/06/30 Python