for -in 与 for- of 区别, 构造函数概念

36 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情

目录

构造函数

原型对象

构造函数 , 原型对象 , 实例对象 三者间的关系

 原型链

instanceof 原理 

for -in 与 for- of 区别


构造函数

  • new关键字原理

分为四个流程

  1. 创建一个空对象

2.this指向这个对象

3.对象赋值

4.返回这个函数

构造函数内部方法的缺点 :浪费内存

原型对象

  • 概念

每一个函数在创建的时候,系统会自动创建一个对应的对象 , 称之为原型 (原型是构造出来的函数,并不是全局函数)

构造函数 , 原型对象 , 实例对象 三者间的关系

/* 先构造函数 然后系统给原型对象 后面实例对象调用原型对象*/

prototype : 属于构造函数 ,指向原型对象

proto : 属于实例对象 ,指向原型对象

constructor : 属于原型对象 ,指向构造函数

 原型链

  • 原型链的作用  : 继承
  •  js如何实现面向对象的继承   : 原型链

instanceof 原理 

  检测右边构造函数原型prototype 在不在 左边实例对象的原型链中

arr.push() Math.max() 这些方法参数不限数量的,他们的底层就会用 arguments 接收实参

for -in 与 for- of 区别

  1. 功能不同

                for - in   遍历数组的下标  + 元素

                for - of  遍历数组的元素

2. 原型的属性不同

****for - in 可以遍历原型中的属性

                for  - of 不会遍历原型的属性

****3. 数据类型不同

                for -in 可以遍历Object 类型  + 数组

                for - of 只能遍历数组 

     总结 : 

     如果想要下标和元素就用 for - in  , 只想要元素就用 for - of 

        undefined  ==  null  值为true

        undefined === null  值为false

        1 + undefined        //  NAN

        1  + null                //    1