js中对象的属性要注意的点以及在vue中watch对象的属性的方法

取对象值有两种方式,

const obj={

a:'1'

}

obj.a或者obj['a'],中括号还可以写成

const name = 'a'

obj[name]和obj['a']是一个意思。

然后在vue的watch要监听对象的属性,写法是

watch:{

'obj.a'(new,old){}

}

这样的方式。

然后对象的深度拷贝可以通过自己手写递归来实现,也可以通过JSON.parse(JSON.stringify(obj))来实现。

手写递归的话

function deepClone(duixiang){

if(duixiang===null||typeof duixiang !== 'object') return duixiang

let clone=Array.isArray(duixiang)?[]:{}

for(let item in duixiang){

if(duixiang.hasOwnProperty(item)){

clone[item] = deepClone(duixiang[item])

}

}

return clone

}

const newObj = deepClone(obj)

相关推荐
好_快38 分钟前
Lodash源码阅读-memoizeCapped
前端·javascript·源码阅读
好_快39 分钟前
Lodash源码阅读-toString
前端·javascript·源码阅读
好_快40 分钟前
Lodash源码阅读-memoize
前端·javascript·源码阅读
excel1 小时前
webpack 核心编译器 十四 节
前端
excel1 小时前
webpack 核心编译器 十三 节
前端
腾讯TNTWeb前端团队8 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰11 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪11 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪12 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy12 小时前
macOS 命令行 原生挂载 webdav 方法
前端