Js对象操作之属性访问篇
程序员文章站
2022-07-15 22:12:45
...
前提说明:本篇为自学随记,可供JS自学者查看。
<!doctype html>
<html>
<head>
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//ECMAScript 5中新增加的4个访问对象属性的函数:
//Object.getPrototypeOf(object); 返回指定对象的原型
//Object.getOwnPropertyDescriptor(object,propertyname); 获取指定对象的私有属性的描述符
//Object.getOwnPropertyNames(object); 返回指定对象私有属性(直接对该对象定义的属性,而不是从该对象原型继承的属性)的名称数组,包括了可枚举和不可枚举的属性和方法
//Object.keys(object); 仅可返回指定对象可枚举属性和方法名称
//Object.getPrototypeOf
function Pasta(grain,width)
{
this.grain=grain;
this.width=width;
}
var spaghetti=new Pasta("wheat",0.2);
var proto=Object.getPrototypeOf(spaghetti);
document.write(proto===Pasta.prototype);
document.write("</br>");
//Object.getOwnPropertyNames
function Pasta1(x,y,z)
{
this.x=x;
this.y=y;
this.z=z;
this.toAdd=function()
{
return this.x+this.y+this.z;
}
}
var obj =new Pasta1(1,2,3);
var arr=Object.getOwnPropertyNames(obj);
document.write(arr+"</br>");
//Object.keys
var obj2={};
Object.defineProperty(obj2,"toAdd",{
value:100,
writable:true,
enumerable:false, //将对象的属性toAdd的属性描述改为不可枚举时,通过Object.keys不可获取到该属性名称
configurable:true
});
obj2.x=1;
obj2.y=2;
document.write(Object.keys(obj2)+"</br>");
//Object.getOwnPropertyDescriptor 注意:该函数返回的是属性的描述符,而非属性描述数组
var descrip=Object.getOwnPropertyDescriptor(obj2,"toAdd"); //通过数组储存其返回的属性描述符,然后通过for/in语句遍历
for (i in descrip)
{
document.write(descrip[i]+" ");
}
</script>
</body>
</html>
上一篇: ELF二进制目标文件详解
下一篇: 浅析elf格式的二进制文件