JavaScript 对象详解

一、什么是对象?

1.简介

  ECMA-262将对象(object)定义为"属性的无序集合,每个属性存放一个原始值、对象或函数"(unordered collection of properties each of which contains a primitive value, object, or function)。这意味着对象是无特定顺序的值的数组。在ECMAScript中,对象由特性(Attribute)构成,特性可以是原始值,也可以是引用值。如果特性存放的是函数,它将被看作对象的方法(Method),否则该特性被看作属性(Property)。

2.本地对象(native object)

  Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError

  

3.内置对象(built object)

  Global、Math

  

4.宿主对象(host object)

  BOM和DOM对象、用户自定义对象

二、对象的创建

1.字面量方式

var Person = {}; //创建一个对象
Person.name = 'niki'; //添加属性并赋值
Person.age = 23; //添加属性并赋值

//添加一个方法
Person.speak = function() {
    console.info("my name is " + this.name);
};

Person.speak(); //调用方法

2.利用function

 方式一:无参构造函数

//声明一个Person的function
function Person() {}

var person = new Person(); //实例化一个对象
person.name = 'niki'; //定义属性
person.age = 23; //定义属性

//定义成员方法
person.speak = function() {
    console.info("my name is " + this.name);
};

person.speak(); //调用实例方法

方式二、有参构造函数

//声明一个Person的function
function Person(name,age){
    this.name = name;//赋值给属性
    this.age = age;//赋值给属性

    //定义对象方法
    this.speak = function(){
        console.info("my name is " + this.name);
    };
}
//实例化对象
var person = new Person('niki',23);
person.speak();//调用实例方法

3.Object对象创建

 方式一:

//利用Object创建一个对象实例
var person = new Object();
person.name = 'niki'; //属性赋值
person.age = 23; //属性赋值

//定义方法
person.speak = function(){
    console.info("my name is " + this.name);
};
person.speak();//调用实例方法

方式二:

var person = Object.create(null); //创建一个空的person对象
person.name = 'niki'; //属性赋值
person.age = 23; //属性赋值

//定义方法
person.speak = function(){
    console.info("my name is " + this.name);
};
person.speak();//调用实例方法
原文地址:https://www.cnblogs.com/mangoniki/p/5485351.html