探讨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 相关文章推荐
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
Jan 23 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 Javascript
微信小程序可滑动月日历组件使用详解
Oct 21 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 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 include_path设置技巧分享
2011/07/03 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
destoon常用的安全设置概述
2014/06/21 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
一页面多XMLHttpRequest对象
2007/01/22 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
python处理写入数据代码讲解
2020/10/22 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
总经理助理职责
2014/02/04 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
村级换届选举方案
2014/05/10 职场文书
毕业证代领委托书
2014/09/26 职场文书
个人事迹材料范文
2014/12/29 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android