前端基础面试题

121 阅读1分钟

1.router和route的区别 blog.csdn.net/weixin_5715…

2.数组去重的几种方式 www.cnblogs.com/WuAnqi/p/15…

3.如何设计一种订阅者发布模式 复制代码

//1.设定目标对象
let obj = {
    name:"jack"
}
//2.设置两个订阅者
function sub1(key,value){
    console.log(`sub1设置的属性${key}发生了变化,新的值为${value}`)
}

function sub2(key,value){
    console.log(`sub2设置的属性${key}发生了变化,新的值为${value}`)
}
//3.将订阅者放在一个数组里面统一进行通知的数组
let subWrapper = new Set()
function addSub(sub){
    subWrapper.add(sub)
}
addSub(sub1)
addSub(sub2)
//3.设置变化set函数,使用reflect函数
function set(target,key,value){
    let result = Reflect.set(target,key,value)
    result?subWrapper.forEach(fn=>{
        fn(key,value)
    }):''
}
let proxy = new Proxy(obj,{set})
proxy.name = "honi"