在JavaScript中,对象是一组无序的相关属性
和方法
的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性
和方法
组成的。
保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组,保存一个人的完整信息时可使用对象。
1.利用字面量创建对象
对象字面量就是花括号{ }里面包含了表达这个具体事物(对象)的属性和方法。
对象的调用
//1.利用字面量创建对象{ } //var obj = { };创建了一个空的对象 var obj = { // { }里面的属性或者方法采取键值对的形式 键(属性名):值(属性值) name: '张三', age: '18', // 多个属性或者方法之间用逗号隔开 sex: '男', sayHi: function(){ // 方法后面跟的是一个匿名函数 console.log('hi~'); } } //使用对象 // 调用对象的属性 console.log(obj.name); // 第一种方法 对象名.属性名 console.log(obj['age']); // 第二种方法 对象名['属性名'] obj.sayHi(); // 第三种方法 调用对象的方法 sayHi 对象名.方法名() 需要添加小括号
2.利用new Object 创建对象
//利用new Object 创建对象 var obj = new Object(); // 创建了一个空对象 obj.name = '张三'; obj.age = 18; // 利用等号 = 赋值的方法,添加对象的属性和方法 obj.sex = '男'; // 每个属性和方法之间用 分号 结束 obj.sayHi = function(){ console.log('hi~'); } console.log(obj.name); console.log(obj['sex']); obj.sayHi();
3.利用构造函数创建对象
因为前面两种创建对象的方式一次只能创建一个对象,一次创建一个对象,里面有很多的属性和方法是大量相同的,因此可以利用函数的方法,重复这些相同代码,我们将这个函数称为 ——构造函数 ,这个函数里面封装的不是普通的代码,而是对象。
构造函数就是把对象里面一些相同的属性和方法抽象出来封装到函数里面。
//语法格式 //function 构造函数名(){ // this.属性 = 值; // this.方法 = function() { } //} //new 构造函数名(); // 构造函数 明星 泛指的某一大类 类似于java语言中的 类(class) function Star(uname, age, sex){ // 构造函数首字母要大写 this.name = uname; this.age = age; this.sex = sex; this.sing = function(sang) { // 属性和方法前面必须添加 this consloe.log(sang); } } // 调用构造函数必须使用 new // 对象 特指是一个具体的事物 刘德华 == {name: "刘德华", age:18, sex:"男", sing:f} var ldh = new Star('刘德华',18,'男'); // 调用函数返回的是一个对象 console.log(ldh.name); console.log(ldh['sex']); ldh.sing('忘情水'); var zxy = new Star('张学友',28,'男'); console.log(zxy.name); console.log(zxy.age); zxy.sing('吻别');
对象的实例化利用构造函数创建对象的过程
new在执行时会做的四件事情:
1.new的出现,会让构造函数在内存中创建一个新的空对象
2.this就是指向这个新的对象
3.执行构造函数里面的代码,给空对象添加属性和方法
4.返回这个新对象(所以构造函数里面不需要return)
//遍历对象 var obj ={ name: '刘德华', age: 18', aex: '男', } for(var k in obj){ // for in 里面的变量通常写 k 或者 key conlose.log(k); // k 变量 输出 得到的是 属性名(name age sex) conlose.log(obj[k]); // obj[k]得到的是属性值(刘德华 18 男) }