js创建对象的三种方式
1 <script> 2 //创建对象的三种方式 3 // 1.利用对象字面量(传说中的大括号)创建对象 4 5 var obj1 = { 6 uname: 'ash', 7 age: 18, 8 sex: "女", 9 sayhi: function() { 10 console.log("hello kitty"); 11 12 } 13 } 14 15 //访问属性的两种方法 16 console.log(obj1.uname); 17 console.log(obj1[`age`]); 18 19 //调用对象的方法 20 obj1.sayhi(); 21 22 23 // 创建对象的第二种方式,用new 关键字 24 var obj2 = new Object(); 25 //追加属性和方法 26 obj2.uname = '小明'; 27 obj2.age = 20; 28 obj2.sex = "男"; 29 obj2.sayHi = function() { 30 console.log("hi~"); 31 } 32 console.log(obj2.age); 33 console.log(obj2[`age`]); 34 obj2.sayHi(); 35 36 37 // 以上两种方法创建对象一次只能创建一个,用构造函数可以多次创建对象 38 // 创建对象的第三种方式,用构造函数 39 function Star(uname, age, sex) { 40 this.uname = uname; //构造函数里面一定要用到this关键字 ,表示当前对象 41 this.age = age; 42 this.sex = sex; 43 this.sing = function(ge) { 44 console.log(uname + "的主打歌 " + ge); 45 46 } 47 } 48 49 var LDH = new Star("刘德华", 20, "男"); 50 console.log(LDH.uname); 51 console.log(LDH.age); 52 LDH.sing("冰雨"); 53 54 /* new一个对象的执行过程: 55 1.创建一个新对象 56 2.this指向这个对象 57 3.形参为这个对象的属性和方法赋值 58 4.返回这个对象,所以构造函数里面不需要return */ 59 60 var YBN = new Star("姚贝娜", 21, "女"); //new出一个对象 61 YBN.sing("随他吧"); 62 </script>
如何遍历这个对象的属性和值呢?用for in 循环
1 <script> 2 // 首先,我用构造函数创建对象 3 function Star(uname, age, sex) { 4 this.uname = uname; 5 this.age = age; 6 this.sex = sex; 7 this.sing = function(ge) { 8 console.log(uname + "的主打歌" + ge); 9 10 } 11 12 } 13 var GLN = new Star("龚琳娜", 30, "女"); 14 //现在来遍历龚琳娜的属性 15 for (const key in GLN) { 16 console.log(GLN.uname + "的属性有" + key); 17 console.log(GLN.uname + "的值有" + GLN[key]); 18 } 19 </script>
注意,key只是属性,obj[key] 才是值