探讨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 相关文章推荐
如何取得中文输入的真实长度?
Jun 24 Javascript
用JavaScript编写COM组件的步骤
Mar 17 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
Jan 25 Javascript
Vue axios 中提交表单数据(含上传文件)
Jul 06 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
Mar 19 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
实例分析javascript中的异步
Jun 02 Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 Javascript
js实现金山打字通小游戏
Jul 24 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 事件机制(2)
2011/03/23 PHP
php引用传值实例详解学习
2013/11/06 PHP
Yii2如何批量添加数据
2016/05/17 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
使用python实现knn算法
2017/12/20 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
技术总监的工作职责
2013/11/13 职场文书
岗位职责的含义
2013/11/17 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
机关党员公开承诺书
2014/08/30 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
小学运动会宣传稿
2015/07/23 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
Redis实现短信验证码登录的示例代码
2022/06/14 Redis