javascript之object对象

来源:互联网 发布:c语言结构体typedef 编辑:程序博客网 时间:2024/05/17 22:32
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var arr=['a','b','c'];
// keys的属性就是返回一个所有元素为字符串的数组 但是和 for in不同 
// for in还可以返回继承的 也就是原型链上的
console.log(Object.keys(arr));
// 如果想得到一个对象的所有的属性名   包括不可枚举的 则可以用getOwnPropertyNames()
console.log(Object.getOwnPropertyNames(arr));
// 返回指定对象上一个自有属性对应的属性描述符
// 自有属性是指自己本身赋予的 而不是从原型链上查找的属性
//     getOwnPropertyDescriptor(obj,'discrib')
//会打印出 configurable可配置 enurable可枚举
var obj={
get foo(){
return 123;
},
name:'ss',
age:12
};
console.log(Object.getOwnPropertyDescriptor(obj,'foo'));
console.log(Object.getOwnPropertyDescriptor(obj,'name'));
// 申明一个空的对象 通过defineProperty(obj,对象属性名,值)来修改obj1
var obj1={};
Object.defineProperty(obj1,'test',{
value:'this test',
configurable:false,
writable:false,
enumerable:false
});
console.log(Object.getOwnPropertyDescriptor(obj1,'test'));
var obj2={x:1};
var obj3=Object.create(obj2);
console.log(Object.getOwnPropertyDescriptor(obj3,'x'));
//getPrototypeOf(obj)是返回指定对象的原型
console.log(Object.getPrototypeOf(obj3)==obj2);
// constructor返回一个指向创建了该对象原型的函数引用
var arr1=new Array;
console.log(arr1.constructor==Array);
var num=new Number;
console.log(num.constructor==Number);
function test1(){

}
var f=new test1();
console.log(f.constructor);
//当对象需要转换为字符串时,会调用它的toString()方法
console.log(f.toString());
//自定义的todtring方法
test1.prototype.toString=function(){
return '自定义的方法';
}

console.log(f.toString());
//call 方法可以用来代替另一个对象调用一个方法
var toString=Object.prototype.toString;
console.log(toString.call(new Date));
console.log(toString.call(new Number));
</script>
</head>
<body>
</body>
</html>
0 0
原创粉丝点击