我们按照属性的来源,即自己定义的和继承过来的,分为两类
a) 自有属性:自己定义的
b) 原型属性:继承过来的
比如我们定义一个对象
var a = {name:’zhangsan ’ ,age :’ 20’}
其中的name和age就是我们自己定义的,叫自有属性,
而我们console 这个对象a时,下面还有__proto__这个东西,这个就是原型属性,是从window继承过来的.
比如数组就有一堆原型属性 join() includes() find()这些原型属性
在我们使用的时候.如果我们定义了一个自有属性,但是他跟原型属性的名字是一样的,在使用的时候,代码是会优先使用我们自己定义的属性的,其次才是原型属性,所以,如果你想重新定义一个方法覆盖掉原来的原型属性,可以这么干,否则,比如如果你起个一样的名字,原型属性是一个方法,你却把他定义成不同的类型,那就会报错,例如下面:
在这里, 原型属性是不允许删除的,你只能是写个东西覆盖掉,想删除也删不了