面试官问,怎么理解原型原型链,我该怎么答?

面试官问,什么是闭包,我该怎么答?

阅读 2.5k
评论
    7 个回答

    闭包

    闭包是指有权访问另一个函数作用域中的变量的函数。

    function sayHi(name) {
        return () => {
           console.log(`Hi! ${name}`)
        }
    }
    const test = sayHi('xiaoming')
    test() // Hi! xiaoming

    虽然sayHi函数已经执行完毕,但是其活动对象也不会被销毁,因为test函数仍然引用着sayHi函数中的变量name,这就是闭包。
    但也因为闭包引用着另一个函数的变量,导致另一个函数已经不使用了也无法销毁,所以闭包使用过多,会占用较多的内存,这也是一个副作用。

    原型及原型链

    所有的JS对象都有一个prototype属性,指向它的原型对象。当试图访问一个对象的属性时,如果没有在该对象上找到,它还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

    前端面试题

      相似问题
      推荐文章