一、原型这个东西,我们面试的时候老是会被问到,有时候确实是回答得不好,现在我就简短地概括一下这个js原型吧!以后面试再被问到,能说一点点也不算太尴尬了。
function yuanxing(){
console.log('啥是原型啊')
}
这个函数也是一个对象来的哦!然后所有的函数对象都有一个prototype属性,就是函数的原型对象,
当我们新建一个实例时,这个实例会有一个__proto__属性,这个是浏览器的原型属性,有些浏览器支持,有些不支持。实例的原型就是函数对象的原型,然后原型的原型是对象的原型,再来就是对象的原型的原型就是Null。这就引出一个问题了,那就是原型链。当我们在看一个对象是否有某个属性时会先在自身找,自身没有那就到它的原型去找,一步一步地找到某个属性,当找到Null时就代表已经找到了原型链的结尾了,这个链式寻找的步骤串联起来就是一条所谓的原型链了。看看下面的图哈!
大家看着图片再看文字就会慢慢地理解原型跟原型链这两个东西了,那么js原型,我们一般用来干嘛呢?平常我们有没有用到呢?这个我就不讲了,因为我们平常确实少用到,如果想知道怎么用的话,可以去看看一些框架源码,这样子更有助于理解这个东西!本期就到这里了,你学废了吗!!!