• 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>

     

     

  • 相关阅读:
    8月15日
    【k8s】创建 tls 类型 Secret
    使用 openssl 生成 CA 证书
    【k8s】跨 Namespace 使用 Ingress
    Windows 和 Centos 导入 CA 证书
    使用 openssl 生成服务器证书
    【k8s】nginx ingress 配置 https
    【k8s】通过 https 访问 dashboard
    1012day人口普查系统
    8.3日志
  • 原文地址:https://www.cnblogs.com/lvlisn/p/11671702.html
Copyright © 2020-2023  润新知