什么是原型 原型的三个属性 什么是原型链
什么是原型
js规定每个函数都有一个proto属性,指向另一个对象(自身的原型),函数对象除了proto之外还有prototype属性,当函数作为构造函数创建实例时,该属性就被作为实例对象的原型
原型的三个属性
prototype,proto,constructor
1.prototype
每个函数都有一个prototype属性,这个属性指向函数的原型对象。
2.proto
每个对象(除null外)都会有的属性,叫做__proto__,这个属性会指向该对象的原型。
3.constructor
每个原型都有一个constructor属性,指向该关联的构造函数
什么是原型链
当一个对象调用自身不存在的属性和方法时,就回去自己的proto关联的前辈prototype对象上去找,如果没找到,就回去该prototype原型[proto]关联的前辈prototype去找,依此类推,直到找到或者返回undefinend这个链式查找的过程就是原型链
new运算符
分配内存,调用构造函数
浏览器若有一个canvas,放大缩小会有影响吗
会掉帧
promise理解
promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,可以获取异步操作的消息
使用它的目的:
(1)避免回调地狱的问题
(2)promise对象提供了简洁的API,使得控制异步操作更加容易
promise的用法
new Promise(function(resolve,reject){ })
let const var
var声明是函数作用域,有变量提升,可重复声明
const声明是块级作用域,不能被修改,没有变量提升,相同块作用域内不允许同一变量重复声明
let声明是块级作用域,不能被修改,没有变量提升
vuex五个核心概念
state
负责状态管理,类似于vue中的data,用于初始化数据,不能直接修改
getters
Vuex中的计算属性,相当于vue中的computed,依赖于state状态值,状态值一旦改变,
getter会重新计算,也就是说,当一个数据依赖于另一个数据发生变化时,就要使用getter
mutations
专用于修改state中的数据,通过commit触发,这是一个同步逻辑操作
actions
可以处理异步,通过dispatch触发,不能直接修改state,首先在组件中通过dispatch触发action,
然后在action函数内部commit触发mutation,通过mutation修改state状态值
modules
模块化管理