码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 对象详解

时间:2016-05-13 08:54:23      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

一、什么是对象?

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();//调用实例方法

 

JavaScript 对象详解

标签:

原文地址:http://www.cnblogs.com/mangoniki/p/5485351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!