JavaScript是基于对象语言还是面向对象语言

JavaScript019

JavaScript是基于对象语言还是面向对象语言,第1张

有三个核心概念:

一切事物皆对象,(tips: javascript 中除了两个特殊值undefined 和 null.)

对象具有封装和继承特性

对象与对象之间使用消息通信,各自存在信息隐藏。

OK,基于这三点,我们再来看,

C++ 是半面向对象半面向过程语言,因为,虽然他实现了类的封装、继承和多态,但存在非对象性质的全局函数和变量。

Java、C# 倒是完全的面向对象语言,通过类的形式组织函数和变量,使之不能脱离对象存在。但这里函数本身是一个过程,只是依附在某个类上。

然而,面向对象仅仅是一个概念或者编程思想而已,它不应该依赖于某个语言存在。比如 Java 采用面向对象思想构造其语言,它实现了类、继承、派生、多态、接口等机制。但是这些机制,只是他实现面向对象编程的一种手段而已,而非必须。

换句话来说就是,一门语言是可以根据其自身特性选择合适的方式来实现面向对象,一个女生是可以根据自身特色来选择合适的着装来展现自己,至于穿什么样的衣服,it’s up to you!

由于大多数人,像我们都是首先学习或者使用的是类似 Java、C++ 等高级编译型语言,先入为主地接受了“类”这个面向对象实现方式,从而在学习脚本语言的时候,习惯性地用类式面向对象语言中的概念来判断该语言是否是面向对象语言,或者是否具备面向对象特性。实际上,JavaScript语言是通过一种叫做原型(prototype)的方式来实现面向对象编程的。它和其他的面向对象类编程语言一样,只是它的实现方式不同而已,或者说他们采用了不同的面向对象设计哲学。

你预先接受了穿裙子才显得好看,所以你用这个“穿裙子”去评判别人穿着,但你不能说穿牛仔裤的她就是不好看的,对吧?别人只是选择了牛仔裤来展现自己。。So, java 选择了“类继承”, javascript 就是选择的“原型继承”来展示自己。

让我们从大家熟悉的类继承入手,

类继承就是在函数对象内调用父类的构造函数,使得自身获得父类的属性和方法。

但是原型继承呢,继承不在对象本身,而是在对象的原型上。子类的构造函数中不拥有父类对象的方法和属性。

那么让我们看一个简单的例子来和“原型继承”初次见面一下。

var Person = function(name, city){

this.name = name

this.city = city || "China"

}

var jean = new Person("Jean")//new 一个新对象

console.log(jean.__proto__.constructor)//私有链接,指向构造函数Person的原型123456123456

这里,大家是不是觉得很熟悉,因为写法跟“类继承“很相似啊。其实javascript还是沿袭了类继承的形式,听起来有点不伦不类,但是也许就是因为这种妥协,让javascript更容易被大多数人所接受,成为了现在最流行的原型继承语言也说不定呢~~

JavaScript和Java的区别:

1、用处不一样:

它们最本质的不同就是用途:Java目前被广泛应用于PC端、手机端、互联网、数据中心等等;

而JavaScript则被主要用于嵌入文本到HTML页面,读写HTML元素,控制cookies等。

2、出身不同:

Javascript与Java是由不同的公司开发的不同产品。Javascript是Netscape公司的脚本语言;而Java是SUN Microsystems 公司推出的新一代面向对象的程序设计语言。

3、嵌入方式不同:

在HTML文档中,两种编程语言的标识不同,Javascript 使用&ltscript&gt&lt/script&gt 来标识;而 Java 使用 Applet 来标识。

Java的特点:

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。

因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

以上内容参考百度百科——JavaScript,百度百科——Java

学java的话更好找工作,更有发展潜力。JavaScript是一种轻量级编程语言,具有动态类型系统,这使得在开发web应用程序时运行脚本变得很容易。而Java是一种面向对象的编程语言,具有静态类型系统,这使得它比JavaScript运行起来更高效、更快。千锋教育拥有线上免费Java线上公开课。

Java是未来的COBOL语言,大量的企业级软件都由Java开发,经过多年的实践,Java稳定性已经被大多数公司所认可。在未来,企业级软件还是会以Java开发为主,甚至未来几十年,Java开发人员的需求量仍会变大。虽然,我们不能称它是最好的语言,但是,基于它的可靠性、安全性,并且有很多的框架和社区支持,对于软件工程师来说,Java语言依旧是一个不二之选。同时,它也是中小型企业业务后台以及安卓开发的首选语言,所以Java的未来,不可估量!如果想了解JavaScript更多相关知识,建议到千锋教育了解一下。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。