对象是JS的基本数据类型,是动态的,可以创建,添加,删除,查找,检测,枚举的
js对象分为:内置对象 宿主对象 自定义对象
js对象属性分为:自有属性 继承属性
一:内置对象 ---- 就JS定义的对象和类 Date(时间) Math(元算) Array(数组) RegExp(正则) String(字符串) number(数子)等等
这些对象都是JS自己定义的,可以直接去调用
例如:字符串大写 : var ddd = "ddddd" ; console.log(ddd.toUpperCase())
得到
得到0-1之间随机数: var nums = Math.random();
二:就是 JS嵌入的宿主环境定义的 例如 htmlelement对象均为宿主对象 可理解为浏览器提供的对象 BOM对象和DOM 对象
Bom对象: 即理解为浏览器对象:核心的就是浏览器对象:window.open window.confirm window
DOM对象:及时DOM树了
三:自定义的对象
js :定义对象有两种方法:
1:var o =new Object 或者 var o = {}(对象的直接量 倒是可以用来定义JS中的配置文件)
var o={
"name-title":"js",
"sub-title":"the defind",
}
2: var o= Object.create({x:9,y:9}); Object.create 值在ECMAScript5.0中才有 ECMAScript3.0没有 IE7 支持ECMAScript要兼容
//可以继承用
function inherit(p){
if(p == null) throw TypeError;
if(Object.create){ //ECMAScript3.0
return Object.create(p);
}
var t = typeof p;
if(t != "Object" && t !="function"){ //兼容ECMAScript3.0
function f(){};
f.prototype = p;
return new f();
}
}
四:对象的属性:
设置属性的方法:
var o ={name:"xiaozhao"}; //设置属性
var author = o.name; 或者 var author = o['name']//获得属性
delete o.name 或者 delete o['name']
//删除属性
属性 有可读写 可枚举 可配置
方法如下:
判断一个对象时候有此属性 hasOwnproperty()和propertyIsEnumerable()
var o ={x:"9999"};
o.hasOwnproperty(x) 或者 o.x !== undefinded
//返回真 true
o.hasOwnproperty(y) 或者 o.y !== undefinded
//返回真 false
//一个属性的特性:value:““属性值 writable:true|false
//可读写 enumerable:true|false
//可枚举 configurable:true|false
//可读写
//得到对象属性的特性:
Object.getOwepropertyDescriptor(对象名称,属性值)
//属性描述
var code = {x:"1234",y:"56789"};
console.log(Object.getOwnPropertyDescriptor(code,"x"));
//返回:Object {value: "1234", writable: true, enumerable: true, configurable: true}
//设置新建属性的特性
Object.definePeoperty(对象,对象属性,{value: "1234", writable: true, enumerable: true, configurable: true} )