• 当前标签:Object

程序开发 JavaScript Object

var p = {} p.name = 'wangBaoQiang' p.age = 3 p.isMale = true console.log(p) // delete p.isMale // console.log(p) // Object.freeze(p) // delete p.age // console.log(p) // Object.freeze() 冻结一个对象冻结后对象的属性不能被删除 // 冻结是冻结的整个对象而不是某一个属性 // 冻结后属性的值无法改变 不能添加新属性 // p.age = 4 // console.log(p)             // console.log(Object.isFrozen(p)) // Object.isFrozen() 判断对象是否被冻结 // console.log(p)             // Object.seal() 密封一个对象 密封后属性不能被删除 但可以被改变 // 密封后不能添加新属性 // Object.seal(p) // delete p.age // p.age = 8 // p.height = 99 // console.log(p)             // console.log(Object.isSealed(p)) // Object.isSealed() 判断是否被密封 // Object.preventExtensions() 只能阻止添加属性或方法 不能阻止删除 不能阻止修改属性或方法 // Object.preventExtensions(p) // p.weight = 22 // console.log(p)        // console.log(Object.isExtensible(p)) // Object.isExtensible() 判断对象是否被扩展 // console.log(p) // freeze > seal > preventExtensions // freeze 对象不可改变 // seal 只能修改值 // preventExtensions 只能阻止添加属性和方法 Object.defineProperty(p, 'course', {     enumerable: false,     value: 'HTML5' }) console.log(p) var keys = Object.getOwnPropertyNames(p) console.log(keys) // getOwnPropertyNames 获取对象中属性的名字 keys = Object.keys(p) // Object.keys() 返回自身属性 console.log(keys) // for(var key in p){ //     console.log(key) // } console.log(p.hasOwnProperty('course1')) // hasOwnProperty() 判断是否拥有指定的属性 console.log(p.propertyIsEnumerable('course')) // propertyIsEnumerable() 判断属性是否被列举 var b = new Object(true) console.log(b) console.log(b.valueOf()) // valueOf() 从对象中取出值 console.log(p.toString()) console.log(b.toString()) // 每个对象都有toString()方法 但是对象可以改变这个方法的实现从而返回不同的值 // 一般对象返回[Object 对象构造函数名字] // 其他对象不会返回特定的值如布尔对象返回 true/false 字符串 // Date对象返回 日期字符串 // 数字对象返回 数字字符串 var n =new Number(3.14) console.log(n.toString()) console.log(Object.prototype.toString.call(n)) console.log(Object.prototype.toString.call('ff')) // 可以通过上面的方法获取对象的类型

2017-08-02 18:37:36 128 0 0
阅读详情
  • 1
前往