您的位置:首页 > 娱乐 > 八卦 > 宁波网络推广教程_网页设计免费网站推荐_关键词林俊杰mp3免费下载_实时新闻

宁波网络推广教程_网页设计免费网站推荐_关键词林俊杰mp3免费下载_实时新闻

2025/1/9 19:19:55 来源:https://blog.csdn.net/qq_73270720/article/details/145006364  浏览:    关键词:宁波网络推广教程_网页设计免费网站推荐_关键词林俊杰mp3免费下载_实时新闻
宁波网络推广教程_网页设计免费网站推荐_关键词林俊杰mp3免费下载_实时新闻

原型与原型链

在 JavaScript 中,原型模式主要通过原型链实现
每个对象都有一个原型对象proto,它可以通过__proto__属性或Object.getPrototypeOf()方法来访问。原型对象本身也是一个对象,它可以有自己的属性和方法
当一个对象访问一个属性或方法时,JavaScript 会首先在该对象本身查找,如果找不到,则会沿着原型链向上查找,直到找到该属性或方法为止。如果在原型链的顶端仍然找不到该属性或方法,则返回undefined

js实现深拷贝

json的方法

//1.运用JSON.stringify()和JSON.parse()const liLei = {name: 'lilei',age: 28,habits: ['coding', 'hiking', 'running']}console.log(liLei);//将原始数据转成JSON字符串const liLeiStr = JSON.stringify(liLei)console.log(liLeiStr);//将JSON字符串解析成对象const liLeiCopy = JSON.parse(liLeiStr)liLeiCopy.habits.push('swimming')console.log(liLeiCopy);console.log(liLeiCopy == liLei); //false

递归

  //2.运用递归function deepClone(obj) {//递归终止条件 : 不是对象,为空if(typeof obj !== 'object' || obj === null) {return obj}let res={}if(Array.isArray(obj)){res=[]}for(const e of Object.keys(obj)) {res[e] = deepClone(obj[e])}return res}let newLiLei = deepClone(liLei)console.log(newLiLei == liLei); //falsenewLiLei.habits.push('swimming')//成功拷贝,原对象与拷贝对象互不影响console.log('李雷副本的habits数组是', newLiLei.habits)console.log('李雷的habits数组是',  liLei.habits)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com