面试官:你来说说js 中的原型吧?
面试者心里活动:(内心慌的一批,往往自己理解的东西讲不出来)
我觉得应该这么回答:
首先说一下原型的作用吧:原型的主要作用是共享方法/属性(公共方法/属性)的抽离,减少重复声明工作和空间开辟浪费;
Js 把对象中公共方法抽离放到一个对象(原型对象prototype)中,然后在new 的过程中让实例的__proto__ 去引用 这个原型, 而且抽离公共方法的这个prototype 也是一个对象实例,他也有__propto__,他的__proto__也会指向一个prototype ,如此往复就形成了一个链路,就是我们说的原型链
例如:Number 对象 Number 它除了数字类型特有的toFixed 方法 ,还有 toString、valueOf 等 js 所有对象都有的方法,那么js是把toString和valueOf 着这些公共的方法放到了Object 对象上 然后让Number.prototype = new Object.create(null) number.proto-> new Object.create(null) new Object.create(null).proto -> null
首先我们回答出了原型主要作用,然后清晰的讲出了js 的原型/原型链,并且举了例子!这样面试官一下子就听明白了!并不一要说很多,只要言简意赅的、有条理的说出来就好了