/----------------对象中的3个属性,1(prototype ) 2( class )3 (extensible attribute)–/
//--------prototype检测一个对象是否是另一个对象的原型,返回结果为true或false
var aa={x:1}// 定义一个原型对象,":“表示属性名与属性值,意思x为属性名,1为x的值;这是直接量对象创建方法
var bb=Object.create(aa)//使用这个原型创建了一个对象
var cc={x:1}//定义一个原型对象
document.write(“aa是bb的原型,测试结果为:”+aa.isPrototypeOf(bb)+”
")
document.write(“aa是cc的原型,测试结果为:”+aa.isPrototypeOf(cc)+"
")
//------class属性
function classof(x)
{
document.write(“检测类classof的属性为:”+Object.prototype.toString.call(x)+"
")
}
//----对象可扩展性
//—对象的可扩展性用以表示是否可以给对象添加新属性(内置对象和自定义对象都是可扩展的宿主对象的可扩展性是由JavaScript引擎定义的)
/*
Object.isExtensible() 判断对象是否是可扩展的
Object.preventExtensions() 将对象转换为不可扩展的
Object.seal() 将对象设置为不可扩展并且对象中所有自有属性都设置为不可匹配(封闭对象(sealed))
Object.freeze() 将对象设置为不可扩展 对象中所有自有属性都设置为不可匹 配并且所有数据属性都设置为只读(严格锁定对象–冻结 (Frozen))
Object.isSealed() 用来检测对象是否封闭
Object.isFrozen() 用来检测对象是否动冻结
*/
document.write(“检测aa类的可扩展性为:”+Object.isExtensible(aa)+"
")
document.write(“将对象转换为不可扩展的”+Object.preventExtensions(aa)+"
")
document.write(“将对象设置为不可扩展并且对象中所有自有属性都设置为不可匹配(封闭对象(sealed)):”+Object.seal(aa)+"
")
document.write(“将对象设置为不可扩展 对象中所有自有属性都设置为不可匹 配并且所有数据属性都设置为只读(严格锁定对象–冻结 (Frozen)):”+Object.freeze(aa)+"
")
document.write(“用来检测对象是否封闭:”+Object.isSealed(aa)+"
")
document.write(“用来检测对象是否动冻结:”+Object.isFrozen(aa)+"
")
/
//---------------------对象的常见用法
var person={fname:“feir”,lname:“h”,age:24}//对象直接量
var a=new Object()//通过new操作符创建对象
var b=Object.create({x:11,y:43})//Object.create()方法
var b=Object.create(null)//创建了一个没有原型的对象
document.write(“查找属性age:”+person.age+"
")//用person查找,以“.”点的形式
document.write(“查找属性age:”+person[“age”]+"
")//用person查找,以“【】”方括号的形式
person.xin=“钟”//为对象person增加属性xin
person[“ming”]=“道杰”//为对象person增加属性ming
document.write(“查找属性xin:”+person.xin+person.ming+"
")//查看xin加进去没有,显示一下