对象导读
对象
什么是对象?对象是一个具体的事物。举个例子:明星不是对象,但是周星驰就是一个对象。
在JavaScript中,对象是一组无序的相关属性和方法的集合。所有的事物都是对象,例如字符串、数值、数组、函数等。属性常用名词,方法常用动词。
创建对象的三种方式
- 利用字面量创建对象
- 利用new object创建对象
- 利用构造函数创建对象
1.//利用对象字面量创建对象
var obj = {};//空的
var obj = {
username: '张三',
age: 18,
sex: '男',
sayHi: function() {
console.log()
//调用对象的属性,我们采取对象.属性名console.log(obj.username)
还有一种方法 对象名【'属性名'】console.log(['age'])
//调用对象的方法 对象名.方法名
obj.sayHi();//一定要添加小括号
2.var obj = new Object();//创建了一个空的对象,这里和之间文章里面写的创建空的数组是相同的道理。
obj.user = '张三丰';
obj.age = 18;
obj.sex = '男';
obj.sayHi = fuction() {
console.log('hi~');
}
//利用等号赋值的方法,添加对象的属性和方法
//每个属性和方法之间用分号结束
console.log(obj.sex);
console.log(obj['username']);
obj.sayHi();
3.利用构造函数创建多个对象
构造函数里面封装的不是普通代码而是对象
//创建四大天王的对象
相同属性:姓名 年龄 性别 相同的方法:唱歌
function 构造函数名 () {
this.属性;
this.方法 = function () {}
}
new 构造函数名();
function Star(username,age,sex) {
this.name = username;
this.age = age;
this.sex = sex;
this.sing = function (song) {
console.log(song);
}
}
var ldh = new Star('刘德华',18,'男');//ldh就是对象
//构造函数名首字母必须大写
//不需要return 返回值
console.log(typeof ldh);
console.log(ldh.name);
var zxy = new Star('张学友',19,'男');
zxy.sing = '冰雨';
var lm = new Star('黎明',20,'男');
//一定要记得加this!!!
构造函数和对象的区别:
构造函数泛指某一类,对象是具体的事物,利用构造函数创建对象称为对象的实例化
new关键字
new执行分为四步:
- 利用new在内存创建一个空的对象
- 让this指向这个对象
- 执行构造函数里面的代码,给这个对象添加属性和方法
- 返回这个新对象
遍历对象属性
var obj = {
username = 'pink老师',
sex = '男',
age = 20;
}
//for in语句遍历对象
for(变量 in 对象) {
}
for(var k in obj)//k 或者 key
{
console.log(k);//k是变量得到属性名
console.log(obj[k])//obj[k]得到的是属性值
}
变量、函数、属性、方法
变量和属性都是存储数据的,比如var num=5;
var obj = { num: 5}.。但是变量需要声明,属性不需要声明。
函数和方法都是用来实现某种功能的,函数就是function fn (){
},而方法就是fn: function(){},区别就是方法是在对象里面的。