美文网首页我爱编程
JS基础面试题——原型和原型链

JS基础面试题——原型和原型链

作者: 石燕平_Leo | 来源:发表于2018-05-05 21:56 被阅读0次

这篇文章主要说原型及原型链,鉴戒了一些网络大神的想法,有什么疑问可以提出来大家一起共同解决

1. 原型的五条规则

  • 所有的引用类型都可以自定义添加属性
  • 所有的引用类型都有自己的隐式原型(proto
  • 函数都有自己的显式原型(prototype)
  • 所有的引用类型的隐式原型都指向对应构造函数的显示原型
  • 使用引用类型的某个自定义属性时,如果没有这个属性,会去该引用类型的proto(也就是对应构造函数的prototype)中去找
原型链.png
   function Foo(name) {
      this.name = name;
      // return this;  // 本身会执行这一步
   }

   Foo.prototype.alertName = function() {
     alert(this.name);
   }

   var f = new Foo('shiyanping');

   f.printName = function() {
     console.log(this.name);
   }

   f.alertName();  // f.__proto__ -> Foo.prototype
   f.printName();
   console.log(f.toString());  // f.__proto__.__proto__

2. 如何准确判断一个变量是数组类型

arr instanceof Array

instanceof判断一个引用类型是什么引用类型,是通过proto(隐式原型一层一层往上找,能否找到对应构造函数的prototype)

3. 写一个原型链继承的例子

function Element(ele) {
  this.ele = document.getElementById(ele);
}

Element.prototype.html = function(val) {
  var ele = this.ele;
  if (val) {
    ele.innerHTML = val;
    return this;
  } else {
    return ele.innerHTML;
  }
};

Element.prototype.on = function(type, fn) {
  var ele = this.ele;
  ele.addEventListener(type, fn);
  return this;
}

var element = new Element('main');

element.html('hello').on('click', function() {
  alert('handleClick');
});

4. 描述new一个对象的过程

  • 创建一个新对象
  • this指向这个新对象
  • 执行代码给this赋值
  • return this
function Foo(name) {
  this.name = name;
  // return this;  // 本身会执行这一步
}

var f = new Foo('shiyanping');

相关文章

  • 原型和原型链

    今天发现一张特别好的图(↑↑↑上图↑↑↑),对原型和原型链的理解特别直观友好。 原型和原型链 基础储备:每个 JS...

  • js基础(三)

    js基础 原型链和原型对象 ... ... js没有继承原型对象prototype通常用来添加公共的属性或行为且只...

  • 5-1 从基础知识到JSWebAPI

    回顾js基础知识 JS-web-API 总结 回顾js基础知识 变量类型和计算 原型和原型链 闭包与作用域 异步和...

  • 关于javascript的原型和原型链,看我就够了(一)

    关于js的原型和原型链,有人觉得这是很头疼的一块知识点,其实不然,它很基础,不信,往下看要了解原型和原型链,我们得...

  • 6.js-Web-API-DOM、BOM

    js基础知识:基于ECMA 262标准(规定基础语法、规则) --变量类型和计算--原型和原型链--闭包和作用域-...

  • JS基础知识体系

    JS基础知识 1、变量类型和计算 值类型和引用类型 类型判断 逻辑运算 2、原型和原型链 class 继承 原型 ...

  • JS基础面试题——原型和原型链

    这篇文章主要说原型及原型链,鉴戒了一些网络大神的想法,有什么疑问可以提出来大家一起共同解决 1. 原型的五条规则 ...

  • Javascript基础篇

    本文主要介绍Javascript(interview)基础语法。 1.原型 和 原型链 2.继承 2.1 js的继...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

网友评论

    本文标题:JS基础面试题——原型和原型链

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