原型的一道題

// const F = function () {}
function F(){}
// eslint-disable-next-line no-new-func
// const F = new Function()
// eslint-disable-next-line no-extend-native
Object.prototype.a = function () {
    console.log('a')
}

// eslint-disable-next-line no-extend-native
Function.prototype.b = function () {
    console.log('b')
}

const f = new F()
f.a()
F.b()
f.b()

// 结果:a,b,f.b()is not a function....

  自以为完全理解js原型那一套的我,还是栽在了这道题上。

Function.prototype.b是给所有函数的原型加了个属性,f只是new出来的一个对象。所以
F.b()有结果而f.b()报错

 

posted on 2021-10-13 09:26  hhvfg  阅读(33)  评论(0)    收藏  举报