探讨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 替换Html标签实现代码
Oct 14 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
Aug 28 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
vue.js入门教程之计算属性
Sep 01 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
Dec 08 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
Feb 11 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 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将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
js实现上传图片预览的方法
2015/02/09 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python操作redis的方法
2015/07/07 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库