对象是什么呢?
JS中对象的定义是内存中一段有意义的空间。
对象可以是生活中的任何事物。而JS中的对象就是将生活中的对象抽象化了,这些对象抽象化之后就是有一些无序属性,这些属性构成了一个无序的集合。
对象中主要包含属性(就相当与生活中某对象的特征) 一般情况下是一个名词,方法(就相当于生活中对象可以做到动作,事情,方法)一般情况下是动词。
对象是怎么创建的呢?
用Object构造函数创建对象。
例如
var person = new Object(); //创建了一个person对象
person.name = "小明"; //对象的属性name值为小明,下面的几个属性不做解释
person.age = 12;
person.height = "160cm";
person.weight = "50kg";
person.sayHi{ //对象的方法,即函数。
alert("hi");
}
对象字面量
例
var person = function(){ //声明一个对象,把定义的属性和方法给对象。
name:"小明", //对象的属性 冒号 对象的值
age:12, //注意各个键值对之间,方法之间都是用逗号隔开的。
height:"160cm",
weight:"50kg",
sayHi:function(){
console.log("hello");
}
}
- 自定义构造函数
function Person(name ,age ,job){
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function (){
console.log("hello");
}
}
var p = new Person("小明","20",student); //将实参传给对象的形参作为对象的属性值
- 工厂函数创建对象
function createPerson(name,age,sex){
var person = new Object();
person.name = name;
person.age = age;
person.sex = sex;
person.sayHi=function(){
console.log("hello");
}
return person;
}
var p=createPerson("小明",20,"male");
new关键字
构造函数是一种特殊的函数,首字母一般需要大写,与new关键字一起使用。主要用来创建对象时候初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用,创建对象。
在创建对象的语句中,new在执行时
(1)会在内存中开辟一段空间 。
(2)让this指向这个新对象,执行构造函数。
(3)给这个对象加属性和方法,new会返回这个新对象。