• 当前标签:控制对象

程序开发 JavaScript 控制对象

var p = {} p.name = 'wangBaoQiang' p.age = 30 p.show = function(){     console.log('你们好') } // 那怎样才能删除age属性呢? // console.dir(p) // p.age = undefined // console.dir(p) // p.age = null // console.dir(p) // 上述方法只能改变属性的值 不能删除属性 delete p.age console.dir(p) delete p.show console.dir(p) // delete 不光能删除属性也可以删除方法 var num = new Number(3.14159) console.log(num) var obj = new Object(3.14159) console.log(obj) var b =new Object(true) console.log(b) var p = {     name:'BaoBao',     age:3 } var p1 = {     name:'maRong',     age:4 } Object.defineProperty(p1,'isMale',{     value:true,     configurable:true,     writable:true,     enumerable:true }) // defineProperty 为对象定义一个新的属性 // 三个参数 //     第一个参数:要添加新属性的对象 //     第二个参数:属性名称 //     第三个参数:属性描述对象{ //         value:属性值 //         configurable 默认为false 指定属性是否被删除 false无法删除 //         writable 指定属性值是否能改变 //         enumerable 属性名是否在枚举中 也就是说可以被for...in...列举出来 //     } // delete p1.isMale p1.isMale = '111' console.log(p1) for(var k in p1){     console.log(k) } p1.height = 100 var heightDesc = Object.getOwnPropertyDescriptor(p1,'height') console.log(heightDesc) // 在p1对象里获取属性height的描述信息 // 创建一批表示人的p对象 比如100人 var p2 = {     name:'1',     age : '3',     desc:'我的名字叫baoqiang,今年28' } var p3 = {     name:'2',     age : '4',     desc:'我的名字叫marong,今年48' } var p4 = {     name:'3',     age : '7',     desc:'我的名字叫songzhe,今年38' } // 使用构造函数 // 把一个函数当成构造函数使用 函数名字首字母大写 // Pascal命名法 function Person(name,age,isMale,height){     this.name = name     this.age = age     this.isMale = isMale     this.height = height     Object.defineProperty(this,'birthYear',{         configurable:false,         enumerable:true,         get:function(){             var year = new Date().getFullYear()             return year - this.age         },         set:function(value){             var year = new Date().getFullYear()             if(value > 2017){                 alert('出生年份不能大于' + year)                 return             }             this.age = year - value         }     }) } // 把定义的属性代码移到构造函数中 之后 通过构造函数创建的对象都会有这些属性 var person = new Person('1','3','4','5') var person1 = new Person('4',28,'6','7') // 通过person1.birthYear获取属性值时会调用属性指定的get方法 计算出属性值 person1.birthYear = 2200 console.log(person) console.log(person1.birthYear) // 没有set方法的情况下 无法通过[.属性 = 值]改变属性的值  // 有set方法时 通过[.属性 = 值]设置值的时候 // 会调用set方法 将 = 后面的值当做参数传给set方法 // 已保留或者转换这个值 console.log(p4)

2017-07-28 19:42:37 25 0 0
阅读详情
  • 1
前往