博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js使用defineProperty的一些坑
阅读量:6985 次
发布时间:2019-06-27

本文共 490 字,大约阅读时间需要 1 分钟。

var p2={};Object.defineProperty(p2,"gs",{    get:function () {        return this.gs;    },    set:function (gs) {        this.gs=gs;    }})

写了一段如上low的代码,然后再浏览器运行

alert(p2.gs);后浏览器报错了

Uncaught RangeError: Maximum call stack size exceeded

 错误详情:

由于在js中

调用的是由于其p2.gs调用的其实是gs.get方法,由于在函数内部this.gs调用的还是gs.get方法,导致其一直在循环调用,最后堆栈报错了

解决办法:

var p2={    _gs:123};Object.defineProperty(p2,"gs",{    get:function () {        return this._gs;    },    set:function (gs) {        this._gs=gs;    }})

  

 

 

转载地址:http://fqmpl.baihongyu.com/

你可能感兴趣的文章
《黑客防线》2010合订本(下半年)
查看>>
intel I7平台Win7 x64 下wpf、silverlight 与aero特效动画缓慢故障排除一则
查看>>
shell常识总结
查看>>
内存池版本1--单线程-固定大小专为某类设计的内存池
查看>>
大道至简,职场上做人做事做管理
查看>>
《C++必知必会》读书笔记2
查看>>
web 学习资源整理
查看>>
make 参数定义
查看>>
数组排序(冒泡和快速)
查看>>
java从字符串中提取数字
查看>>
Cardinality Feedback
查看>>
Android App Build System
查看>>
Python yield与实现
查看>>
终端中的乐趣:6个有趣的Linux命令行工具
查看>>
【技术贴】TOMCAT,Mysql提示Unknown column 'content' in 'fi
查看>>
EBS xml publisher中文乱码
查看>>
ext-anychart饼图呈现取自数据库中的数据
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>
zz:彻底解决兼容性问题:Windows 7下载安装 Visual C++ 6.0(VC6)
查看>>
MVC、MVP以及Model2[上篇]
查看>>