美文网首页
构造函数

构造函数

作者: 樊小勇 | 来源:发表于2019-03-25 10:04 被阅读0次

什么是构造函数

  • vue
  • react
  • 可以通过new得出一个新的对象的就是构造函数

this 的引入

<script>
    // 在函数中this代表谁调用了这个函数,this就指向谁
    function add(){
        var a=10;
        var b=20;
        console.log('this代表的是:',this);//这里的this指向window
    }

    add();//一般直接调用是window调用的


    var list = {
        start:function(){
            console.log('this指向'+this);
        }
    }
    list.start();//this指向list

</script>

创建对象

<script>
    // 直接量(字面)方式创建对象
    // var vog = {
    //     color:'red',
    //     age = 2
    // }

    // 使用new关键字创建对象
    var date = new Date();
    //Date是特殊函数,专门用来创建对象称为构造函数
    var reg = new RegExp('web','i');//RegExp


    // 自定义构造函数
    // 定义一个构造函数,用来创建猫cat的对象
    function MadeCat(name,age,addr){
        this.name=name
        this.age=age
        this.addr=addr
        // 这里的this指向MadeCat
    }
    
    // 根据名字,年龄,产地创建一个猫的对象
    var cat = new  MadeCat('布偶',2,'美国'); 
    // 调用函数,这个时候this指向MadeCat

    // 通过调用函数和传参,生成一个新的cat
    console.log(cat);


</script>

构造函数

<script>
    // 构造函数的原型
    // 定义一个构造函数,用来创建cat的对象

     function MadeCat(name, age, addr) {
            this.name = name,
                this.age = age,
                this.addr = addr;
            // 这里的this指向MadeCat
        }

        // MadeCat.prototype 指向了MadeCat的原型
        console.log(MadeCat.prototype);

        MadeCat.prototype.color='白色';//在原型上添加属性  (简称更改构造函数)
        MadeCat.prototype.say = function(){
            console.log('么么么');
        }

        // 创建一个猫的对象,实例化
        var cat = new MadeCat('小白',2,'中国');
        console.log(cat);
        cat.say();

        // MadeCat.prototype === cat.__proto__   这两个是相等的 true

        /**
            总结:
            1.构造函数,定义函数
            2.了解this的指向,this指向调用者
            3.通过函数生成对象(简单来说就是想里面添加参数然后
                把这些属性和属性值赋给一个变量,这个变量是一个对象)
            4.通过prototype来选择函数原型(可以通过prototype向函数原型里
                添加想要添加的属性或者函数)
            

            原型:1.所有的构造函数都有对应的原型
                2.在原型上定义的属性方法,实例都会有该属性和方法
                3.如何访问,通过构造函数.protoTypr
                    和   实例.__proto__
                    
        */
</script>

构造函数的原型

  • prototype 指向构造函数的方法
  • 原理 通过prototype来选定构造函数的原型,对其进行增删改

原型 实际应用场景

  • 封装方法
在vue里,根据原型定义一个变量$http 把封装好的方法放进来
使得不管什么都可以通过this.$http直接访问原型 获取到get和post方法
Vue.prototype.$http = {
  get,
  post
};

相关文章

  • Flutter 6种构造函数详解

    Flutter有生成构造函数、默认构造函数、命名构造函数、重定向构造函数、常量构造函数、工厂构造函数 一.生成构造...

  • C# 构造函数总结

    构造函数 构造函数分为:实例构造函数,静态构造函数,私有构造函数。 实例构造函数 1、构造函数的名字与类名相同。 ...

  • Javascript 基础之原型链

    构造函数、构造函数实例、构造函数原型 function Student (name) { } - 这是构造函数va...

  • Swift基础语法-类的构造函数

    本节知识点 构造函数的介绍 构造函数的基本使用 自定义构造函数 属性与构造函数 1. 构造函数的介绍 构造函数类似...

  • C++:面向对象基础

    构造函数 C++中有三种构造函数:默认构造函数,有参构造函数,拷贝构造函数 类对象的初始化 括号法//默认构造函数...

  • 构造函数

    构造函数分为: 1.实例构造函数 2.私有构造函数 3.静态构造函数 私有构造函数 私有构造函数是一种特殊的实例构...

  • Dart整理

    Dart构造函数 普通构造函数和命名构造函数 默认构造函数一个类没有声明构造函数,默认会有一个无参构造函数,声明了...

  • Kotlin面向对象 (3)✔️构造函数

    主构造函数次构造函数默认构造函数 kotlin中的构造函数有主次之分,主构造函数只能有一个,此构造函数可以有多个。...

  • [C++之旅] 10 构造函数

    [C++之旅] 10 构造函数 构造函数的特点 构造函数在对象实例化时被自动调用 构造函数与类同名 构造函数没有返...

  • Java基础-3 构造函数

    构造函数: 构造函数的作用: 给对应的对象进行初始化。 构造函数的格式: 构造函数要注意的细节:1. 构造函数是...

网友评论

      本文标题:构造函数

      本文链接:https://www.haomeiwen.com/subject/loomvqtx.html