js的类和继承

因为我使用java语言入门的编程,所以对javascript的类和继承有种想当然一样,或者是差不多的感觉,但实际上两者还是有很多不同的

首先我们说类,javascript中类的实现是基于原型继承机制的,那么什么是原型呢

这里我们分享一下prototype的概念 

JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为何一个对象会拥有定义在其他对象中的属性和方法。

准确地说,这些属性和方法定义在 Object 的构造器函数之上,而非对象实例本身

对于java函数

首先定义“类”,此后创建对象实例时,类中定义的所有属性和方法都被复制到实例中。

但是javascript是不同的

在 JavaScript 中并不如此复制——而是在对象实例和它的构造器之间建立一个连接(作为原型链中的一节),以后通过上溯原型链,在构造器中找到这些属性和方法

说到这里,以后再补上

原文地址:https://www.cnblogs.com/czy960731/p/7581750.html