探讨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的事件描述
Sep 08 Javascript
javascript void(0)的妙用
Oct 21 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
Javascript常用字符串判断函数代码分享
Dec 08 Javascript
JS两种类型的表单提交方法实例分析
Nov 28 Javascript
ES6学习之变量的两种命名方法示例
Jul 18 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
vue.js路由跳转详解
Aug 28 Javascript
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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
ini_set的用法介绍
2014/01/07 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
php实现学生管理系统
2020/03/21 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
Python正则表达式的使用范例详解
2014/08/08 Python
Django与JS交互的示例代码
2017/08/23 Python
python中map()函数的使用方法示例
2017/09/29 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python爬虫之自制英汉字典
2019/06/24 Python
python画双y轴图像的示例代码
2019/07/07 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
为什么要有struct关键字
2012/05/08 面试题
中华魂放飞梦想演讲稿
2014/08/26 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
干部培训工作总结2015
2015/05/25 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
golang elasticsearch Client的使用详解
2021/05/05 Golang
Python关于OS文件目录处理的实例分享
2021/05/23 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
Python实现信息管理系统
2022/06/05 Python
git中cherry-pick命令的使用教程
2022/06/25 Servers