探讨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 相关文章推荐
Javascript中replace()小结
Sep 30 Javascript
jQuery.uploadify文件上传组件实例讲解
Sep 23 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
构建大型 Vue.js 项目的10条建议(小结)
Nov 14 Javascript
JS+CSS实现3D切割轮播图
Mar 21 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
vscode中使用npm安装babel的方法
Aug 02 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
PHP 导出Excel示例分享
2014/08/18 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
prototype.js的Ajax对象
2006/09/23 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
JS二分查找算法详解
2017/11/01 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
python微信公众号开发简单流程
2018/03/23 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
Python调用飞书发送消息的示例
2020/11/10 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
职业规划书如何设计?
2014/01/09 职场文书
cf战队收人广告词
2014/03/14 职场文书
师德建设实施方案
2014/03/21 职场文书
成立公司计划书
2014/05/07 职场文书
监察建议书格式
2014/05/19 职场文书
国际贸易系求职信
2014/08/09 职场文书
医院护士工作检讨书
2014/10/26 职场文书
六年级小学生评语
2014/12/26 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js