「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战」。
什么是原型链?
每一个实例对象上有一个proto属性,指向的构造函数的原型对象,构造函数的原型
对象也是一个对象,也有proto属性,这样一层一层往上找的过程就形成了原型链。
什么是闭包?手写一个闭包函数? 闭包有哪些优缺点?
学习文档:zhuanlan.zhihu.com/p/22486908
闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解就是 ,一个作用
域可以访问另外一个函数内部的局部变量。
一个作用域有权访问另一个函数内部的变量
function fn() {
var num = 10;
function fun() {
console.log(num);
}
//这里return 是为了让函数外部可以访问这个fun函数
return fun;
}
var f = fn();
f();
作用:延长变量作用域、在函数的外部可以访问函数内部的局部变量,容易造成内层泄露,因为闭包中的局部变量永远不会被回收(闭包不会造成内存泄露,造成内存泄漏的是ie浏览器,使用完闭包回收不了变量。)
自己理解的作用:为了让外部可以使用到函数内部的局部变量
内存泄露是什么?
内存泄露是指你用不到(访问不到)的变量,依然占居着内存空间,不能被再次利用起来。
组件中的data为什么要定义成一个函数而不是一个对象?
每个组件都是 Vue 的实例。组件共享 data 属性,当 data 的值是同一个引用类型的值时,改变其中一个会影响其他
谈谈你平时都用了哪些方法进行性能优化?
减少http请求次数、打包压缩上线代码、使用懒加载、使用雪碧图、动态渲染组件、CDN加载包。