探讨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实现页面打印的三种方法
Mar 05 Javascript
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
JS创建类和对象的两种不同方式
Aug 08 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
JavaScript实现数组随机排序的方法
Jun 26 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 Javascript
详解vue项目打包步骤
Mar 29 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中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
js资料toString 方法
2007/03/13 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
Django URL传递参数的方法总结
2016/08/28 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
2014社区三八妇女节活动总结
2014/03/01 职场文书
听课评语大全
2014/04/30 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书