1.对象
1.1什么是对象?
现实生活中:万物皆对象,对像是一个具体的事物 ,看见摸得着的实物。例如,一本书一辆汽汽一 个人可以是“对象”, 一个数据库一张网页、 一个与远程服务 器的连也可以是“对象”。
对象包括: 属性 and 方法
1.2、为什么需要对象?
-
保存一个值时,可以使用变量,保存多个值时,可以使用数组。如果要保存一个人的完整信息呢 ?
例如,将“张三疯”的个人的信息保存在数组中的方式为:
var person = ['张三疯','男',128, 154];
-
JS中的对象表达结构更清晰,更强大。张三疯的个人信息在对象中的表达结构如下:
-
张三疯 . 姓名=‘张三疯';
张三疯 . 性别=‘男';
张三疯 . 年龄=128;
张三疯 . 身高=154;
-
对应代码为:
person.name =张三疯';
person.sex =’男' ;
person.age = 128;
person.height = 154 ;
1、利用字面量创建对象
对象字面量:就是花括号{ }包含表达这个具体事物(象)的属性方法。
{ } 里面 采取键值对( 属性名:属性值 ) 的形式示;多个属性或方法之间用逗号(,)隔开
方法的后面跟的是一个匿名函数
● 键: 相当于属性名
● 值: 相当于属性值 ,可以任类型的值(数字类、字符型、布尔型,函数类型等)
例如:
var Star={
name:'pink',
age: 18,
sex: 'man', //使用逗号分隔
sayHi: function(){
alert('大家好啊!');
}
}
此时创建了一个 名为 Star 的对象
对象的调用
●对象里面的属性调用: 对象 . 属性名 这个点 . 就理解为”的”
●对象里面属性的另一种调用方式: 对象[ '属性名'] 方 括号的属性 必须引号,我们后面会用
●对象里面的 方法 调用: 对象方法名(); ,这个方法名字后面一定加括号
console . log (star. name); //调用名字属性
console .log (star[ 'sex']); // 调用性别属性
star. sayHi() ; //调用sayHi方法,注意,一定不要忘记带后面的括号
变量、属性、函数、方法总结
●变量:单独声明赋值,单独存在
●属性:对象里面的变量称为属性,需要声明,用来描述该对象的特征
●函数:单独存在的,通过 函数名() 的方式就可以调用
●方法:对象里面的函数称为方法,方法不需要声明, 使用 对象方法名() 的方式就可以调用,方法用来描述该对象的行为和功能。
2、利用new Object 创建对象
例如:
var obj=new Object(); //创建了一个空的对象
obj.uname = '张三疯';
obj.age = 18;
obj.sex='男';
obj. sayHi = function() {
console.log('hi~');
}
// (1) 我们是利用 等号=赋值 的方法添加对象的属性和方法
// (2) 每个属性和方法之间用分号结束
console.log(obj.uname);
console.log(obj['sex']);
obj.sayHi();
3、构造函数创建对象
//构造函数的语法格式
function 构造函数名() {
this.属性=值;
this.方法= function() {}
}
//调用构造函数,必须使用 new
new 构造函数名();
例如:
function Star(uname, age, sex) {
this.name = uname ;
this.age = age;
this.sex = sex;
this.sayHi=function(skill){
console.log(skill);
}
}
var ldh = new Star('刘德华',18,'男');
ldh.sayHi('sing');
// 1.构造函数名字首字母要大写
// 2.我们构造函数不需要 return 就可以返回结果(此处将结果返回给 ldh )
// 3.我们调用构造函数 必须使用 new
此处 var ldh = new Star('刘德华',18,'男'); 将 ’刘德华‘ 18 男 分别传入 uname age sex
ldh.sayHi('sing'); 将sing传入 方法 并打印出 sing
3. new关键字
new在执行时会做四件事情:
1.在内存中创建一个 新的空对象。
2.让this指向这个新的对象。
3.执行构造函数里面的代码,给这个新对象添加属性和方法。
4.返回这个新对象(所以构造函数里面不需要return )。