博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于js中属性那些事
阅读量:5046 次
发布时间:2019-06-12

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

1         //为object对象扩展create函数,指定继承对象2         if (typeof Object.create !== 'function') {3             Object.create = function (o) {4                 var F = function () { };5                 F.prototype = o;6                 return new F();7             }8         }
1         let oa = { 2             name: 'zhangw' 3         }; 4  5         //es5中为对象定义属性,可设定属性参数,如:不可枚举、不可修改等 6         Object.defineProperty(oa, 'interest', { 7             value:'table tennis', 8             configurable: false, 9             writable: false,10             enumerable: false11         });12 13         for (let i in oa) {14             //因为增加的属性被设置为不可枚举,此处不会打印出来interest15             if (oa.hasOwnProperty(i)) {16                 console.log(i, oa[i]);17             }18         }

hasOwnProperty可能是某对象的自定义属性,为了安全的使用它,最好的方法是直接从Object的原型对象上拿来调用:

1         var foo = { 2             hasOwnProperty: function () { 3                 return false; 4             }, 5             bar: 'very good.' 6         }; 7         foo.hasOwnProperty('bar'); // 始终返回 false 8  9         // 如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法10         // 使用另一个对象的`hasOwnProperty` 并且call11         ({}).hasOwnProperty.call(foo, 'bar'); // true12 13         // 也可以使用 Object 原型上的 hasOwnProperty 属性14         Object.prototype.hasOwnProperty.call(foo, 'bar'); // true

 

转载于:https://www.cnblogs.com/glzgc/p/9590710.html

你可能感兴趣的文章
FreeMarker解析json数据
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
次序+“选择不重复的记录”(3)——最大记录
查看>>
Codeforces 450 C. Jzzhu and Chocolate
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&&打表)
查看>>
JSON、JSONP、Ajax的区别
查看>>
AngularJS学习篇(一)
查看>>
【转载】 IP实时传输协议RTP/RTCP详解
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>
css3动画——基本准则
查看>>
javaweb常识
查看>>
Java注解
查看>>
时间>金钱
查看>>
元数据元素
查看>>
Visual Studio Code 构建C/C++开发环境
查看>>
web自己主动保存表单
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
创建与删除索引
查看>>