之所以存在原型是因为JS语言要实现面向对象,而原型是面向对象的实现手段之一,一个能支持面向对象的语言必须要做到一点:能判断一个实例的类型,在JS中,通过原型可以知晓某一个对象从属于哪个类型,换句话说,原型的存在避免了类型丢失
任何一种语言要实现面向对象有两种方式:
如果不记录类型的话,上面的两个对象属性完全一样,如果说我们希望第一个对象是属于一条狗的对象,第二个对象是属于一只猫的对象,我们该怎么表达这个东西呢?对于计算机而言两者是一样的,都有一个属性是name,只是name的值是不一样的
如果是一个不支持面向对象的语言就需要下面的写法:
所以原型就是用来记录对象是那个类型的,通过原型我们可以往上追溯到不同的对象类型