探讨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 相关文章推荐
在网页里看flash的trace数据的js类
Jan 10 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
May 24 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
Apr 22 Javascript
详解javascript new的运行机制
Jan 26 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
JavaScript如何操作css
Oct 24 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 Javascript
JavaScript async/await原理及实例解析
Dec 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程序效率优化的一些策略小结
2010/07/17 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
基于jquery的表格排序
2010/09/11 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
详解如何较好的使用js
2016/12/16 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
小程序实现密码输入框
2020/11/16 Javascript
Python threading多线程编程实例
2014/09/18 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python中私有属性的定义方式
2020/03/05 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
三行辞职书范文
2015/02/26 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
Mysql 一主多从的部署
2022/05/20 MySQL