JS查看对象属性的方式

var person = {
type: 'person',
say: function(){
console.log("Hellow World!")
}
}
//以person对象为原型,创建obj对象
var obj = Object.create(person, {
sex: {
writable: true,
configurable: true,
enumerable: false, //设置sex属性为不可枚举
value: 'male'
},
age: {
writable: true,
configurable: true,
enumerable: true, //设置sex属性为可枚举
value: 23
}
});
//为obj对象创建Symbol属性
var mySymbol = Symbol();
Object.defineProperty(obj, mySymbol, {
value: 'hello!'
});
obj.name = '张三'; //自定义属性name默认为可枚举
console.log(obj.propertyIsEnumerable('name')); //true, 成功验证name属性为可枚举
//用for…in…获取obj上全部可枚举的属性(包括自有和原型链上的)
var arr = [];
for(var key in obj){
arr.push(key);
}
console.log(arr); //["age", "type", "say"]
//用Object.keys()获取obj上全部可枚举的自有属性
console.log(Object.keys(obj)); //["age", "name"]
//用Object.getOwnPropertyNames()获取obj上所有的属性
console.log(Object.getOwnPropertyNames(obj)); //["sex", "age", "name"]
//用Object.getOwnPropertySymbols(obj)获取obj上的Symbol属性
console.log(Object.getOwnPropertySymbols(obj));// [Symbol()]
//用Reflect.ownKeys(obj)获取obj上所有属性,包括Symb属性
console.log(Reflect.ownKeys(obj)); // ["sex", "age", "name", Symbol()]
JS查看对象属性的方式的更多相关文章
- js访问对象属性的方式“.”与“[]”的区别
. 和 [] 没多大区别,作用完全相同.但是 一般情况下建议使用 . 写法,这样比较接近其它语言的面向对象写法,易读 如果属性名是动态的(比如变量中),只能使用 [] 写法.如 var person= ...
- js 获取对象属性个数
js 获取对象属性个数 方法一: var attributeCount = function(obj) { var count = 0; for(var i in obj) { if(obj.hasO ...
- js获取对象值的方式
js获取对象值的方式 var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc&qu ...
- JS 自定义对象 属性
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在J ...
- js自定义对象.属性 笔记
<一> js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtabl ...
- js 中对象属性特性的描述
如何自定义属性的特性? 用对象.属性的特性和自定义的属性的特性有什么区别? 它的四大特性 writable enumerable configable 有什么区别? 先预习一个用对象.属性 ...
- JS获取对象“属性和方法”的方法
平时在写的代码过程中,经常会遇到对对象Object的数据处理.而在对对象的数据处理中,操作最频繁的是“数据引用”.“值的修改”.“获取关键字(属性)”.平时最烦的也是“获取关键字”,经常忘记怎么去获取 ...
- JS枚举对象属性的方法及其区别
愉快的中秋节要过去了,国庆倒计时两个周!!! 闲话不多说,那今天我们来看一看JS中枚举对象属性的方法有哪些以及他们的区别 首先在JS里面枚举对象属性一共有三种方法 for in: 会遍历对象中所有的可 ...
- js object 对象 属性和方法的使用
//object 对象 属性和方法的使用 var person = new Object(); person.name="张海"; person.age="; perso ...
随机推荐
- C# 指定程序打开指定文件
Process process = new Process(); process.StartInfo.FileName = 指定程序exe文件路径: process.StartInfo.Argumen ...
- 浅谈前端nuxt(ssr)
SSR: 服务端渲染(Server Side Render),即:网页是通过服务端渲染生成后输出给客户端. 一.那为什么要使用SSR呢? 我用一句话理解的就是降低SPA(Single Page App ...
- 多重if-else语句
C语言自学之多重if-else语句 Dome : 某游戏对不同等级的积分的玩家赋予不同的荣誉称号,其对应关系如下: 积分>=10000分为钻石玩家 积分>=5000并且<10000为 ...
- Envoy 源码分析--event
目录 Envoy 源码分析--event libevent Timer SignalEvent FileEvent RealTimeSystem 任务队列 延迟析构 dispacth_thread E ...
- 2017年11月23日**科技面试java工程师面试总结
从整个面试看了,表现并不理想,有很多不足. 1.关于手机页面闪现问题的处理.从原理上观察,页面闪现是因为异步请求导致的.在进入页面中首先会加载默认的东西,此时也会访问数据库端,会用ajax判断是否满足 ...
- ldap 导出、导入ldif数据
ldap 导出.导入ldif数据有如下方式: 1.dsadm(速度快,需要停止ldap实例) 2.dsconf(速度慢,需要保持ldap实例开启) windows导出.导入需要加上参数--unsecu ...
- windows硬盘优化篇
1.数据收集(默认的族分配为4096 bytes.最好只使用第一次的计算结果,以后再运算值会一直增加.计算软件“Cluster Size Calculator”) ------------系统为w7 ...
- 第二课 --- git的(管理修改和撤销修改、删除文件)
读取文本内容: cat readme.txt 查看工作区与脚本库里面的区别: git diff HEAD -- readme.txt 丢弃工作区的修改内容: git checkout -- readm ...
- vue.js 自带阻止默认事件 阻止冒泡
<!-- 阻止单击事件冒泡 --> <a v-on:click.stop="doThis"></a> <!-- 提交事件不再重载页面 ...
- spring boot 连接多个数据源
在springboot中有需要连接多个数据源的情况. 首先配置文件application.properties中添加两个数据源连接字符串 mybatis.type-aliases-package=co ...