zoukankan      html  css  js  c++  java
  • jQuery进阶第四天(2019 10.13)

    1 初识面向对象(面向对象是一种思维方式

    以前写的代码

    1 var name = '莉莉';
    2 var sex = '女';
    3 var age = 18;
    4 var name1 = '小明';
    5 var sex1 = '男';
    6 var age1 = 19;

    面向对象的代码:

     1 var lili = {
     2     name: 'lili',
     3     sex: 'nv',
     4     age: 18
     5 }
     6 var xiaoming = {
     7     name: 'xiaoming',
     8     sex: 'nan',
     9     age: 19
    10 } 

    2 简单工厂

    简单工厂:people函数可以产生对象,根据传入的参数不同产生的对象也不同

            参数===原料, 对象===产品

     1 function people(name, sex, age) {
     2             // 声明一个空对象
     3             var obj = {};
     4             // 给属性赋值
     5             obj.name = name;
     6             obj.sex = sex;
     7             obj.age = age;
     8             // 添加方法
     9             obj.show = function() {
    10                 console.log("我叫" + this.name + ', 我今年' + this.age + '岁,我是一个' + this.sex + '生!');
    11             }
    12             // 返回对象
    13             return obj;
    14         }

    简单工厂的缺陷:通过工厂产生的对象,没有办法区分种类

    3 构造函数

    1、构造函数首字母大写,但这不是语法要求,作为书写习惯

    2、构造函数使用new 关键字调用

    new操作的过程

        1、在内存中申请了一块空间

        2、改变this指向(this默认指向window对象,this指向要生成的对象)

        3、为this赋值

        4、返回this指向的对象

    return对构造函数的影响(结论:非引用的返回值没有影响,引用类型的返回值会取代this所指向的对象

    说法:(实例、类、实例化)

        将产生的对象称之为实例(实例化对象)

        new过程称之为实例化

     将构造函数称之为

     1     <script>
     2     function People(name, sex, age) {
     3     // 给属性赋值
     4     this.name = name;
     5     this.sex = sex;
     6     this.age = age;
     7     // 添加方法
     8     this.show = function() {
     9         console.log("我叫" + this.name + ', 我今年' + this.age + '岁,我是一个' + this.sex + '生!');
    10     }
    11 }
    12 var xiaoming = new People('小明', '男', 18);
    13     </script>

    5 备份this(当指定对象不是this的指定对象 就会默认window对象为指定对象 这时就得备份);

     1 <script>
     2          var obj = {
     3         name1: 'aaa',
     4         demo: function() {
     5             console.log(this.name1);
     6         },
     7         test: function() {
     8             // 备份this
     9             var me = this;
    10             (function() {
    11                  // 此处this不会指向obj对象,指向的是window对象
    12                  // console.log(this.name1);
    13                  console.log(me.name1);
    14              })();
    15          }
    16         }      
    17     obj.demo(); 
    18     // window.name1 = 333;
    19     obj.test();
    20 </script>

     

     

  • 相关阅读:
    徐丽君 20191017-1 每周例行报告
    徐丽君 20191010-2 每周例行报告
    徐丽君 20190919-1 每周例行报告
    徐丽君 20190919-4 单元测试结对
    20191128-1 总结
    20191121-1 每周例行报告
    20191114-1 每周例行报告
    20191107-1 每周例行报告
    20191031-1 每周例行报告
    20191024-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/lvlisn/p/11671702.html
Copyright © 2011-2022 走看看