1.对象是由属性和方法组成的:
对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
1.0属性:事物的特征。
1.1 行为:事物的行为。
2.创建对象的三种方式:
2.0利用字面量创建对象:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。
var obj = {
uname : '中烟',
age : 13,
sex: '男',
//方法冒号后面跟的是一个匿名函数
sayHi :function(){
console.log('hi');
}
}
//调用对象的属性 采用 对象名.属性名
console.log(obj.uname);//中烟
//调用属性还有一种方法 对象名['属性名']
console.log(obj['age']);//13
//调用对象的方法 sayHi 对象名.方法名()
obj.sayHi();
3.变量、属性、函数、方法的区别:
3.0变量和属性的相同点:都是用来存储数据的。
3.1 变量:单独声明并赋值 使用时直接写变量名 单独存在
3.2 属性: 在对象里面不需要声明的 使用时候必须是 对象.属性
3.3 函数和方法的相同点:都是实现某种功能
3.4函数: 是单独声明 并且调用时: 函数名() 单独存在的
3.5 方法: 在对象里面 调用时: 对象.方法()
4.利用 new Object创建对象
var obj = new Object();//创建一个空对象
//每个属性之间用分号结束
obj.uname = '中原';
obj.age = 14;
obj.sex = '女';
//利用等号赋值的方法 添加对象方法
obj.sayHi = function(){
console.log('Hi');
}
console.log(obj.uname);
console.log(obj['age']);
obj.sayHi();
5.构造函数:
把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
6.利用构造函数创建对象:
//new 构造函数();
function Star(uname,age,sex){
this.age = age ;
this.name = uname;
this.sex = sex;
this.song = function (sang) {
console.log(sang);
}
}
var lj = new Star('雷静',18,'男');
// console.log(typeof lj);//测试变量数据类型
//1.构造函数名字首字母要大写
//2.构造函数不需要return 就可以返回结果
console.log(lj.name);
console.log(lj['sex']);
lj.song('您好中国');
//3.我们调用构造函数,我们必须使用new
//4.我们的属性和方法前面必须添加 this
var zhy = new Star('中原',14,'男');
console.log(zhy.name);
console.log(zhy['age']);
console.log(zhy.sex);
console.log('耀我中华');
7.构造函数:英雄联盟案例
function Hero(name,type,blood) {
this.name= name;
this.type= type;
this.blood=blood;
this.attack = function (att) {
console.log(att);
}
}
var lp = new Hero('泰坦','力量型',500);
console.log(lp.name);
console.log(lp.type);
console.log(lp.blood);
lp.attack('近战');
var hy = new Hero('小鲁班','射手型',100);
console.log(hy.name);
console.log(hy.type);
console.log(hy.blood);
hy.attack('远战');
8.构造函数和对象:
8.0构造函数 泛指的某一大类。比如:豪车
8.1对象 特指一个具体的事物。比如:保时捷
9.new 关键字:
9.0在内存中创建一个新的空对象。
9.1让 this 指向这个新的对象。
9.2 执行构造函数里面的代码,给这个新对象添加属性和方法。
9.3 返回这个新对象(所以构造函数里面不需要return)。
10.遍历对象:
var obj = {
name: '中原皇帝',
age: 19,
sex :'男',
}
// console.log(obj.name);
// console.log(obj.age);
//for in 遍历对象
for (var key in obj ) {
// console.log(key);//得到的是属性名
console.log(obj[key]);//得到的是属性值
}