探讨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小功能(列表页面隔行变色)简单实现
Nov 28 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
js实现同一页面多个运动效果的方法
Apr 10 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
Jun 16 Javascript
Jquery easyui开启行编辑模式增删改操作
Jan 14 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
require简单实现单页应用程序(SPA)
Jul 12 Javascript
Javascript this 函数深入详解
Dec 13 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
PHP实现本地图片上传和验证功能
Feb 27 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
完美的php分页类
2017/10/24 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
使用Python生成随机密码的示例分享
2016/02/18 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
利用Python计算KS的实例详解
2020/03/03 Python
使用Python pip怎么升级pip
2020/08/11 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
Python函数调用追踪实现代码
2020/11/27 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
Footshop法国:购买运动鞋
2020/01/19 全球购物
花店创业计划书范文
2014/02/07 职场文书
《月迹》教学反思
2014/02/19 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers