《JAVASCRIPT 高级程序设计》读书笔记六 面向对象的程序设计

时间:2023-03-09 19:37:42
《JAVASCRIPT 高级程序设计》读书笔记六 面向对象的程序设计

一   对象属性

  a.对象定义:

    无序属性的集合,其属性可以包含基本值、对象或者函数;

  b.两种创建方式:

    1.构造函数;

 var person = new Object();
person.name = "Winston";
person.age = 32;
person.job = "Software Engineer"; person.sayName = function(){
console.log(this.name);
}

    2.对象字面量;

 var person = {
name:"Winston",
age:32,
job:"Software Engineer", sayName:function(){
console.log(this.name);
}
}

  c.属性类型

    1.数据属性,用Object.defineProperty修改

      [[Configurable]]    能否修改属性特性、能否通过delete删除属性从而重新定义属性、能否把属性修改为访问器属性;

      [[Enumerable]]      能否通过for-in循环返回属性,默认为false

      [[Wirtable]]            能否修改属性的值,默认为false

      [[Value]]                 属性值

    2.访问器属性,用Object.defineProperty定义

      [[Configurable]]    能否修改属性特性、能否通过delete删除属性从而重新定义属性、能否把属性修改为访问器属性;

      [[Enumerable]]      能否通过for-in循环返回属性,默认为false

      [[Get]]           读取属性时调用的函数,默认为undefined

      [[Set]]           写入属性时调用的函数,默认为undefined