一、对象

自我包含的数据集合,包含在对象里的数据可以通过两种形式—属性(property)和方法(method)访问,属性和方法都要用点语法访问

  1. Object.property
  2. Object.method()

1-1 声明一个对象

  • 对象字面量

    var peng={
      name:"peng";
    age:"18";
    sex:"男"
    }
    
  • new Object()创建对象 ```javascript var person = new Object(); person.name = ‘lisi’; person.age = 35; person.job = ‘actor’; person.sayHi = function(){ console.log(‘Hello,everyBody’); }

//缺点:每创建一个对象都要写一堆代码,太麻烦


- 自定义构造函数
```javascript
//构造函数首字母大写
function Person(name,age,job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayHi = function(){
      console.log('Hello,everyBody');
  }
}
var p1 = new Person('张三', 22, 'actor');

//好处:既封装了内部实现,又能通过instanceof来判断所创建出来对象的具体类型

1-2 给对象添加属性

peng.love="打游戏"
console.log(peng)

1-3 读取属性的key值 object.keys(obj)

1-4 读取属性的value值 object.values(obj)

console.log(Object.keys(xxx))
console.log(Object.values(xxx))

1-5 对象遍历 for in

for(var key in person){
    console.log(person[key])
}
var obj = {};
for (var i = 0; i < 10; i++) {
  obj[i] = i * 2;
}
for(var key in obj) {
  //因为此时遍历到的key是一个字符串,需要通过obj[key]的方式才能访问内容
  console.log(key + "==" + obj[key]);
}

1-6 删除对象属性 delete obj.xxx

function fun() { 
  this.name = 'mm';
}
var obj = new fun(); 
console.log(obj.name); // mm 
delete obj.name;
console.log(obj.name); // undefined

1-7 new关键字

构造函数 ,是一种特殊的函数。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

  1. 构造函数用于创建一类对象,首字母要大写。
  2. 构造函数要和new一起使用才有意义。

new在执行时会做四件事情

new 会在内存中创建一个新的空对象
new 会让this指向这个新的对象
执行构造函数  目的:给这个新对象加属性和方法
new会返回这个新对象

二、内建对象

定义:提供一些预想定义好的对象,我们可以直接把这些对象用在自己的脚本里面,比如使用new关键字去初始化一个数组的时候,就是在创建一个Array对象的新实例

var beatles=new Array()

三、宿主对象

定义:有Web浏览器提供的预定义对象被称为宿主对象,包括:Image,Form,Element