精华内容
下载资源
问答
  • 内置类Array原型链图

    2021-07-10 16:33:26
    arr实例基于原型链,查找到Array.prototype上的push方法=>arr.push,再把找到的push方法执行 =>arr.push() push中的this:arr push的作用是给this未尾追加新值 借用数组原型上的slice方法实现把字符串(或者类...

    在这里插入图片描述
    举例子:arr.push(100)

    arr实例基于原型链,查找到Array.prototype上的push方法=>arr.push,再把找到的push方法执行
    =>arr.push() push中的this:arr
    push的作用是给this未尾追加新值

    借用数组原型上的slice方法实现把字符串(或者类散组)转换为数组原理:

    让slice中的ths变为操作的字符串,这样就相当于在循环遍历字符串,把字符串中的每一项赋值给新的数组……

    模拟内置的slice

    		Array.prototype.myslice = function (n) {
    			let newArr = [];
    			for (let i = n; i < this.length; i++) {
    				newArr[newArr.length] = this[i]
    			}
    			return newArr;
    		}
    		console.log(Array.prototype.myslice.call('成为大佬', 2))
    		// 输出结果
    		// (2)["大", "佬"]
    	// 	0: "大"
    	// 	1: "佬"length: 
    	// 	2__proto__: 
    	// 	Array(0)
    
    展开全文
  • 最完整的原型链图

    2021-09-01 19:50:42
  • //首先创建一个教师类 function Teacher(name,age,course,professional){ this.name=name;... 由__proto__连起来的就叫原型链,终点是null 所以原型链图为: 附: 类似族谱(并不是族谱)的原型链图

    //首先创建一个教师类

    function Teacher(name,age,course,professional){
    	this.name=name;
    	this.age=age;
    	this.course=course;//课程
    	this.professional=professional;//职业
    }
    Teacher.prototype.teaching=function(){//上课
    	console.log(this.name + this.professional +"正在上"+ this.course +"课");
    }
    var t1=new Teacher("张三",18,"语文","老师");
    t1.teaching();//运行结果:张三老师正在上语文课

    //在创建一个人类

    function Human(name,age,course,professional){
    
    }

     //现在让人类继承教师类(原型链继承)

    Human.prototype= new Teacher("赵六",24,"数学","老师");
    	Human.prototype.showInfo=function(){//信息
    	console.log(this.course+this.professional+this.name+"年龄"+this.age+"岁");
    }
    var h1=new Human();//没有传参
    h1.showInfo();//运行结果:数学老师赵六年龄24岁
    h1.teaching();//运行结果:赵六老师正在上数学课
    console.log(h1);

    分析:

    首先Human构造函数里有prototype属性(默认创建的),这个属性指向的是这个构造函数的原型对象(专门保存公有的属性和方法)

                                             prototype--------》构造函数的原型对象

    其次原型对象里有个属性constructor,这个属性指向的是构造函数

                                             constructor-------》构造函数

    最后,用通过构造函数new一个对象(这个对象叫做实例对象)后会有一个__proto__属性,这个属性指向的是构造函数的原型对象

                                            __proto__---------》构造函数的原型对象

    注意:

            1,prototype和__proto__指向的是同一个原型对象

            2,__proto__和constructor属性是对象独有的属性,js里万物皆对象,所以函数也是对象,函数也有这俩属性

    第2点不是很严谨,constructor可能有的对象本身没有,但是可以沿着原型链找到constructor,沿着原型链找到的就被称为:继承过来的属性。

    由第2点可以知道构造函数也有__proto__属性,指向构造函数的原型对象,即构造函数构造函数的原型对象,同理,原型对象也是对象,原型对象也有__proto__属性,也要找构造函数的原型对象。觉得有点绕的话,可以思考两个问题,第一:这个对象(js万物皆对象,可能是函数,可能是原型对象)构造函数是谁? 第二:这个对象构造函数原型对象是谁?

    由__proto__连起来的就叫原型链,终点是null

    所以原型链图为:

     附:

            类似族谱(并不是族谱)的原型链图

    展开全文
  • 原型对象、原型链超详细讲解(附图解)一、函数的原型对象二、prototype(函数的原型)三、__ proto__(原型链)四、constructor(构造函数)五、prototype继承六、结论1.实例对象的原型链指向当前类的原型对象。2.原型...
  • 原型链图

    2021-04-28 14:53:01
  • 原型:JS声明构造函数(用来实例化对象的函数)时,会在内存中创建一个对应的对象,这个对象就是原函数的原型。构造函数默认有一个prototype属性,prototype的值指向函数的原型。同时原型中也有一个constructor属性,...
  • 原型和原型链

    2021-03-11 10:49:12
    前言之前很多讲原型的文章都会有箭头,看的我是头晕脑胀的,这次我希望能通过简单的文字,让大家都能彻底彻底理解原型和原型链,都知道虽然JavaScript和Java名字类似,但是两种完全没有联系。其中就包括Java中很...
  • 原型链 以下仅是个人对原型链的理解,如有不对的地方望大佬指出 先来看一下作者总结的一张,一些含义注释中都有写出 结合下面这段代码可以帮助大家理解 <!DOCTYPE html> <html lang="zh-CN"> <...
  • 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象。 function Person(age) { this.age = age } Person.prototype.name = 'kavin' var person1 = new Person() var person2 = new ...
  • //人类(父类) function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; } Person.prototype.move=function(){ console.log(this.name+"正在散步");...
  • 一、什么是原型链 二、浏览器中原型链与ES标准文档的中概念对应关系 三、函数的特殊性 四、内建对象类型的原型链 五、自定义
  • 写在前面,JavaScirpt 是通过原型链来实现面向对象语言中的继承的,按照“你不知道的 JavaScirpt ”中的说法跟准确点,JavaScirpt没有继承只有委托,JavaScript 只是在两个对象之间创建一个关联。真正的继承是子类...
  • 原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有”prototype”属性,函数对象有”prototype”属性,原型对象有”constructor”属性。一、初识原型在JavaScript中,原型也是一个对象,通过...
  • js 原型链及顶端Object与Function关系 一图胜千言,先来理解一张 原型及原型链理解 每一个对象都有一个__proto__指针,默认指向它的构造函数的原型对象prototype(原型对象prototype的construstor属性指向构造...
  • 函数与原型链

    2021-11-12 19:14:17
    一、什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承。 1.1 函数的原型对象 ​ 在JavaScript中,我们创建一个函数A( 就是声明一个函数 ), 那么浏览器就会在内存中创建一个对象B,...
  • 原型链的使用

    2021-03-11 10:50:42
    这段时间突然有点了解了原型的方法然后看了这个文章感觉很详细...原型链由于原型对象本身也是对象,根据上边的定义,它也有自己的原型,而它自己的原型对象又可以有自己的原型,这样就组成了一条链,这个就是原型链...
  • 什么是原型链?【原型链解决的是什么问题?】 原型链解决的主要是继承问题。 每个对象拥有一个原型对象,通过 __proto__ (读音: dunder proto) 指向其原型对象,并从中继承方法和属性,同时原型对象也可能拥有原型,...
  • 每个函数都有一个特殊的属性叫作原型(prototype)每个对象拥有一个原型对象 [[Prototype]] / __proto__ / Object.getPrototypeOf(object1)通过原型对象一级一级的往上找的这个过程就是原型链原型每个函数都有一个...
  • 下面为大家简单阐述我对原型和原型链的理解,若是觉得有说的不对的地方,还望直接把页面关闭了,别在我这篇文章上继续浪费时间。(逃) 四个规则 我们先来了解下面引用类型的四个规则: 1、引用类型,都具有...
  • JavaScript原型链与继承

    2021-11-21 14:22:33
    一、Javascript原型链 要讲解Javascript原型链我们首先要弄明白几个名词。prototype、__proto__、constructor、原型链。 1、prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象...
  • 原型链 **定义:**按照JS引擎的分析方式,在访问一个实例的属性的时候,现在实例本身中找,如果没找到就去它的原型中找,还没找到就再往上找,直到找到。这就是原型链。 实例的_protpo_指向的是原型对象。 实例...
  • 原型链 查找valueOf大致流程 当前实例对象obj,查找obj的属性或方法,找到后返回 没有找到,通过obj. proto,找到obj构造函数的prototype并且查找上面的属性和方法,找到后返回 没有找到,把Array.prototype当做obj...
  • Nodejs 原型链污染小记

    2021-03-05 12:38:50
    我们来以一道来自于CTFSHOW上的NODEJS分类的一道题为例解释一下关于原型链污染的具体情况(想学CTF的抓紧买VIP吖)。 关键代码 routes/login.js: 一 routes/api.js: 二 在app.js里面都require了这两个文件。...
  • 文章目录一、作用域全局作用域...prototype 属性****constructor 属性**对象的 __proto__ 属性原型属性六、原型链七、闭包基本含义特点应用场景`setTimeout` 传参回调IIFE(自执行函数)函数防抖、节流柯里化模块化解决
  • 原型对象,是用来解决构造函数在创建实例的时候,防止重复执行所导致的性能的降低(这里主要指占用内存),来为服用带来方便 如果在构造函数上添加一个方法 当你每次调用这个构造函数的时候都会调用里面的方法如果用...
  • 原型链:在任意对象和Object.prototype之间,存在一条由__proto__进行连接的链,即为原型链 原型链是个抽象的概念,我们通过例子来解析原型链 定义了构造函数Star,构造函数Star的原型对象(Star.prototype),...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,395
精华内容 41,358
关键字:

原型链图