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] 才是值

posted on 2019-08-20 17:08  源氏西格玛  阅读(948)  评论(0编辑  收藏  举报

导航