探讨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 相关文章推荐
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
简单理解vue中track-by属性
Oct 26 Javascript
bootstrap fileinput完整实例分享
Nov 08 Javascript
AngularJS封装$http.post()实例详解
May 06 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
Jul 06 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
浅谈layui里的上传控件问题
Sep 26 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
package.json文件配置详解
2017/06/15 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python 描述符(Descriptor)入门
2016/11/20 Python
Python守护线程用法实例
2017/06/23 Python
Python中join函数简单代码示例
2018/01/09 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
生产管理的三大手法
2013/11/11 职场文书
招商业务员岗位职责
2013/12/16 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
新课程改革心得体会
2016/01/22 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
git中cherry-pick命令的使用教程
2022/06/25 Servers
详解MySQL的内连接和外连接
2023/05/08 MySQL