博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript对象(一)
阅读量:5204 次
发布时间:2019-06-13

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

Part One:对象的创建
对象的创建,可以使用new Object() 或者 Object.creat(),该方法为静态函数
var foo = Object.create({x:1,y:2});  //foo是一个空对象,该_proto_对象为{x:1,y:2};
 
如何创建一个没有原型的对象?bar不继承任何属性和方法
var bar = Object.create(null);
创建一个普通的对象,继承Object的原型, o1的创建类似于用new的方法创建一个新的空对象
var o1 = Object.create(Object.prototype);
 
Object.create()方法可以通过任意原型创建对象,换句话说,可以使任意对象可继承,这是个强大的特性。
在JavaScript的继承算是一个原型的继承的另一种方法。
Part Two:对象的删除
JavaScipt对象都是关联数组。
对象属性的删除:var foo = {x:1,y:2}
delete foo.x;  //true
foo里面只有y一个属性了,delete操作只能删除该对象的自有属性,不能删除继承的属性。
要删除继承属性,必须从原型对象上面进行删除 。
let a = {p: {x: 1}};
let b = a.p;
//销毁对象时候要遍历属性中的属性,依次删除
for (let item in a) {
for (let ii in a[item]) {
delete a[item][ii]
}
delete a[item]
}
Part Three:对象属性的检测
var foo = {x:1};
"x" in foo //true,可以检测到原型上面的属性
foo.hasOwnProperty("x") // true,只能检测自身固有属性,不能检测原型上面的属性
foo.x !== 'undefined' // true,不能检测属性值为undefined的属性
对象的遍历用for/in
对于对象所有的自身属性的获取,两个方法:Object.keys(foo) //["x"]
Object.getOwnPropertyNames(foo) //["x"]
Part Four:属性setter 和 getter
对象中的属性值可以用一两个方法代替,setter和getter。这种属性叫“存取器属性”。
js查询的时候调用getter(无参数),有返回。设置属性值的时候调用setter,忽略返回值。
如果一个属性同时具有setter和getter,那它就是一个读/写属性,如果只有getter,只读属性,只有setter,只写属性,读取只写属性的时候返回undefined。
var hh = {
$n:0,
get next(){return this.$n++;},
set next(n){
if(n>= this.$n) this.$n = n;
else throw 'too young';
}
}
每调用一次hh或者hh.next,hh里面的$n,next属性值都会+1,经过五次调用之后,hh是这样的:

使用getter的方法,可以给一个对象里面添加多个属性方法

对象属性有一个属性名和4个特性(值:value,可写性:writable,可枚举性:enumerable,可配置性:configurable)

存取性属性的4个特性(get(代替value),set(代替writable),enumerable,configurable)

想要设置属性的特性 Object.defineProperty(o,'x',{属性配置的参数});设置多个属性Object.defineProperties();

 

 

转载于:https://www.cnblogs.com/tangjiao/p/8952171.html

你可能感兴趣的文章
HTML中的a标签实现点击下载
查看>>
tftp、vsftp
查看>>
Eclipse新建纯java工程及使用JUnit5测试
查看>>
memcache cas
查看>>
SVN备份及其还原 — dump/load方法
查看>>
WCF、Net remoting、Web service概念及区别
查看>>
mochiweb 源码阅读(三)
查看>>
一个仿Apple - OS X Lion操作系统风格的滚动条jQuery插件 - lionbars
查看>>
9.29
查看>>
【模板】【学习笔记】noip数学
查看>>
Hbase restFul API
查看>>
QTableWidget
查看>>
linux命令行常用快捷键
查看>>
Robot Framework课件汇总
查看>>
Oracle函数索引与强制走索引
查看>>
AngularJS Directive - 开场小介绍(转)
查看>>
Word Search
查看>>
直接插入排序(带哨兵和不带哨兵)
查看>>
借助IDE到处Runnable JAR 的步骤
查看>>
hdu-5358 First One(尺取法)
查看>>