JavaScript对象的创建与使用
前言
您之前已经学到,JavaScript 变量是数据值的容器。
这段代码把一个单一值(porsche)赋给名为 car 的变量:
var car = "porsche";
对象也是变量。但是对象包含很多值。
这段代码把多个值(porsche, 911, white)赋给名为 car 的变量:
var car = {type:"porsche", model:"911", color:"white"};
对象还可以有方法
方法是在对象上执行的动作。
方法以函数定义被存储在属性中。
person对象
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
对象定义的方式
初始的方式创建
var obj=new Object();
obj.name="zhangsan";
obj.age=12;
obj.say=function(){
//this代表当前对象
alert(this.name+this.age);
}
工程模式创建对象
function createObject(name,age){
var obj=new Object();
obj.name=name;
obj.age=age;
obj.say=function(){
//this代表当前对象
alert(this.name+this.age);
}
return obj;
}
//通过工程模式创建对象
var zhangsan=createObject("zhangsan",12);
var lisi=createObject("lisii",11);
自定义构造函数创建对象
function Student(name,age){
this.name=name;
this.age=age;
this.say=function(){
alert(this.name,":",this.age);
}
}
//创建一个对象
var zhaoliu=new Student("zhaoliu",20);
var wangwu=new Student("wangwu",12);
//判断一个类的构造函数是否是Student
//constructor是Object的属性,每个方法都有,用来获取对象的构造函数的函数名。
var a=zhaoliu.constructor == Student;
alert(a); //true
快速创建
var student = {
name: "dulao",
age : 13,
say : function() {
alert(this.name,":",this.age);
}
};
访问对象属性方法
我们以一下student对象为例子
属性 | 属性值 |
---|---|
name | dulao |
age | 13 |
say | function() {alert(this.name,":",this.age);} |
调用属性
//获得属性 方式1
console.log(student.name);
console.log(student.age);
//获得属性 方式2
console.log(student["name"]);
console.log(student["age"]);
调用方法
student.say();