javascript——构造函数和实例之间的关系

面向对象的思想是——抽象的过程——实例化
小苏这个人,姓名,年龄,性别,吃饭,打招呼,睡觉

自定义构造函数——实例化对象

function Person(name,age,sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            this.eat = function () {
                console.log('吃大蒜拌豆腐加榴莲酱');
            };
        }
        //构造函数——创建对象
        var per = new Person('小苏',38,'女');
        //per.eat();//吃

关系:

实例对象是通过构造函数来创建的
实例对象会指向它的构造函数(暂时理解,是错误的)


image.png

image.png
//dir把这个对象的结构显示出来
        console.dir(per);//实例对象
        console.dir(Person);//构造函数
//实例对象的构造器(构造函数)
        //实例对象的构造器是指向person,结构是true,所以这个实例的per就是通过Person来创建的
        console.log(per.constructor==Person);//true

        console.log(per.__proto__.constructor==Person);
        console.log(per.__proto__.constructor==Person.prototype.constructor);
image.png
 //构造函数
        function Animal(name) {
            this.name = name;
        }
        //实例对象
        var dog = new Animal('大黄');

        console.dir(dog);//实例对象
        console.dir(Animal);//构造函数的名字
image.png
//判断这个对象是不是这种数据类型
        console.log(dog.constructor==Person);//false
        console.log(dog.constructor==Animal);//true

        console.log(dog instanceof Person);//false
        console.log(dog instanceof Animal);//true

总结:

实例对象和构造函数之间的关系:
1、实例对象是通过构造函数来创建的——创建的过程叫实例化
2、如何判断数据是不是这种数据类型?
1)通过构造器的方式:实例对象.构造器 == 构造数的名字
2)对象 instanceof 构造函数的名字
尽可能使用第二种方式来识别,为什么(讲完原型再说)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 6,497评论 0 6
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,736评论 0 21
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,087评论 2 9
  • 今天一个新客户来买叉车,手动的升高叉车,一千多元,送过去后微信转账给我,可是他那会正好加了一个新的客商在聊天,所以...
    Janewei阅读 1,378评论 0 0
  • 在我们年少的时候都有一个梦想,那时候或许不知道梦想是是什么,只是想要去做那样一件事,成为那样的一个人,觉得那样会幸...
    清空妙有阅读 2,823评论 2 3

友情链接更多精彩内容