闭包:
闭包指的就是数据,数据有原始数据的属性值准 浅拷贝 深拷贝
作用域链
全局作用域不能访问局部作用域,局部作用域要调用自身作用域如果有的话直接调用 如果没有的话向上调用,如果再没有就再向上调用,直到调用到window作用域,这就形成了链式作用域。
什么是原型?什么是原型链?
每一个对象都有prototype属性 挂载扩展属性的方法,挂载的属性和方法在这个对象的实例都可以调用。这就是原型。
想要调用自身的属性和方法,如果调用不到通过父级关联的属性和方法,如果调用不到再调用父级的属性和方法,直到调用到object属性否则就返回undefined,这就是原型链。
或
- 原型:每个函数都会自动附带一个属性prototype,这个属性的值是一个普通对象,称之为 原型对象。
任何对象都有原型对象,也就是prototype属性,所有的对象都是通过new来创建 任何 原型对象也是一个对象,该对象就有proto属性,这样一层一层向上找,就形成了一条原型链
bind,call,apply
call 和apply 调用函数可以理解为调用函数方式可以修改this指向 bind不能调用函数返回改变this后的新函数
什么是递归?
递归,简单来说就是自己调用自己
主要有两个关键步骤:
- 写出递归公式
- 找到终止条件
this指向
this指向在函数定义时是确定不了的,只有函数执行的时候才能确定this到底指向谁
1.全局作用域或者普通函数中this指向全局对象的window,
2.定时器中,this也指向全局对象的window,
3.方法调用中谁调用this,this就指向谁
4.构造函数中this指向构造函数的实例
call调用函数可以改变this指向,箭头函数也可以改变this指向
1.同源策略是对 JavaScript 代码能够操作哪些 web 内容的一条完整安全限制
2.这里的同源的——源指的是文档的来源。必须同时满足协议、域名、端口相同
vue兄弟传参如何卸载触发事件?
// $on: 当 参数1 名称的事件触发时, 触发参数2的函数
此外$off是关闭事件总线,不触发函数