探讨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 new Date() 出现NaN 的分析
Oct 23 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
微信小程序 检查接口状态实例详解
Jun 23 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
Jan 31 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
js实现前面自动补全位数的方法
Oct 10 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 Javascript
Echarts.js无法引入问题解决方案
Oct 30 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错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
简单理解Python中的装饰器
2015/07/31 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
廉洁使者实施方案
2014/03/29 职场文书
房屋公证委托书
2014/04/03 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
导游带团欢迎词
2015/09/30 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python