JS面试题—原型和原型链

本文主要探讨JavaScript中的原型和原型链相关面试题,包括构造函数、原型规则、原型链的工作原理以及instanceof操作符的使用。文章通过实例解析如何判断数组类型,展示原型链继承,并详细阐述new一个对象的具体过程。
摘要由CSDN通过智能技术生成

一、 题目

  1. 如何准确判断一个变量是数组类型
  2. 写一个原型链继承的例子
  3. 描述new一个对象的过程

二、知识点

1.构造函数

    function Foo(name, age){
   
        this.name = name
        this.age = age
        this.class = 'class-1'
        // return this //默认有这一行
    }
    var f = new Foo('zhangsan', '20')
    //var f1 = new Foo('lisi', 22) //可创建多个对象

      特点:默认函数首字母大写,构造函数并没有显示返回任何东西。new 操作符会自动创建给定的类型并返回他们,当调用构造函数时,new会自动创建this对象,且类型就是构造函数类型。

2.构造函数—扩展

      var a = {} 其实是 var a = new Object()的语法糖
      var a = [] 其实是 var a = new Array()的语法糖
      function Foo(){…} 其实是 var Foo = new Function(){…}
      使用instanceof判断一个函数是否是构造函数

3.原型规则和示例
原型规则是原型链的基础

  1. 所有引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(除‘null’以外)
  2. 所有引用类型(数组、对象、函数),都具一个_proto_ (隐式原型)属性,属性值是一个普通对象
  3. 所有函数,都有一个prototype(显式原型)属性,属性值也是一个普通对象
  4. 所有引用类型(数组、对象、函数),_proto_ (隐式原型)属性值指向它的构造函数的prototype(显式原型)属性值
  5. 当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去它的_proto_ (即它的构造函数的prototype)中寻找
    var obj = {}; o
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值