对象和面向对象

 1  var dog = {
 2         // 属性
 3         name: "旺财",
 4         age: 10,
 5         dogFriends: ["阿黄", "阿菜", "飞毛腿"],
 6 
 7         // 方法
 8         eat:  function () {
 9             console.log("吃");
10         },
11 
12         run: function () {
13             console.log("跑");
14         }
15     };
16     console.log(typeof dog);
17     console.log(dog);
18 
19     dog.name = "张三";
20     console.log(dog.name);
21 
22     dog.eat();
1  总结:
2     1)对象:属性和方法
3     2)函数和对象有什么区别?
4       - 函数,可以封装一段代码
5       - 对象,封装一组属性和方法
js对象的分类
1、内建对象:string number boolean function object math
2、宿主对象 :bom dom
3、自定义对 1 创建对象的几种方法
 2 1、对象字面量
 3 var xl = {
 4             name = '小撩',
 5             age = 22,
 6             sex = '女',
 7             doIt = function () {
 8                 console.log('我是IT界的女扛把子!'),
 9             }
10       } 
11     写死了
12 
13 2. new Object()创建对象
14 
15   var xl = new Object();
16         xl.name = '小撩';
17         xl.age = 22;
18         xl.sex = '女';
19         xl.doIt = function () {
20             console.log('我是IT界的女扛把子!');
21         }   
22     不能量产
23 
24 3.工厂函数创建对象
25         
26     function createPerson(name, age, sex) {
27         var person = new Object();
28              person.name = name;
29              person.age = age;
30              person.sex = sex;
31              person.doIt= function(){
32                  console.log('我是IT界的女扛把子!');
33              };
34              return person;
35       }
36      var xl = createPerson('小撩', 22, '女');
37      console.log(xl);
38 
39 4. 自定义构造函数
40         
41         function Person(name, age, sex){
42              this.name = name;
43              this.age = age;
44              this.sex= sex;
45              this.doIt= function(){
46                  console.log('我是IT界的女扛把子!');
47              }
48          }
49          var xl = new Person('小撩', 22, '女');
50         //终极的一种方式 继承于object中的function构造函数
       //构造函数本身就是一个函数,必须要与new成对出现

//new的执行过程       
1)new先在内存中创建一个新的空对象
2)new 会让this指向这个新的对象
3)执行构造函数,给这个新对象加属性和方法
4)返回这个新对象
 1 this出现在以下位置,分别代表:
 2         1) 函数中, this指向Window
 3         2) 方法中, this指向的是这个方法所属的对象
 4         3) 构造函数中, this 就是构造函数创建的对象
 5 
 6         1) 函数中
 7 
 8         function fn() {
 9             console.log(this); // Window
10         }
11         fn();
12 
13 
14         2) 对象
15 
16         var obj = {
17             name: '小撩',
18             fn: function () {
19                 console.log(this);
20                 console.log(this.name);
21             }
22         };
23         obj.fn();
24 
25 
26         3) 构造函数
27 
28         function Fn() {
29             this.name = '小撩';
30             this.age = 200;
31             console.log(this);
32         }
33 
34         var object = new Fn();  // 调用构造函数  this指向被创建的对象
35         Fn(); // 函数调用,this必然指向window

 

posted @ 2019-07-12 23:23  疏影横斜水清浅  阅读(254)  评论(0编辑  收藏  举报