首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

帮你彻底搞懂JS的prototype、__proto__与constructor(图解)

前言   作为一名前端工程师,必须搞懂JS的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们...但是由于JS函数也是一种对象,所以函数也拥有__proto__和constructor属性,这点是致使我们产生困惑的很大原因之一。...感谢网友的指出,这里解释一下上段“每个对象都有构造函数”这句话。...而单从constructor这个属性来讲,只有prototype对象才有。每个函数在创建的时候,JS会同时创建一个该函数对应的prototype对象,而函数创建的对象....本文就此结束了,希望对那些对JS的prototype、__proto__与constructor属性有困惑的同学有所帮助。

63020

第197天:js---caller、callee、constructor和prototype用法

fn=function(n){ 36 if(n>0) return n+fn(n-1); 37 return 0; 38 } 39 alert('采用传统方式'+fn(10)); 三、constructor...1 // 什么是构造函数 - -专门用于创建对象或者累的函数 -- 因为js中原来没有对象的概念,通过函数来间接实现面向对象 2 //我们将创建对象的时候那个函数称之为构造函数 3 //我们可以通过...constructor属性获取某个对象的构造函数 4 //constructor 属性就是用来构造对象实例的函数引用 - 后面的知识点 5 //构造函数 创建的对象 6 function...7 this.name = name; 8 } 9 var zhangsan = new Student('张三'); 10 if (zhangsan.constructor...是根据构造函数Student创造(实例化)出来的"+""); 12 13 14 //字符串对象 15 var str = new String("Hi"); 16 if (str.constructor

60420

Angular constructor vs ngOnInit

在 Angular 学习过程,相信很多初学者对 constructor 和 ngOnInit 的应用场景和区别会存在困惑,本文我们会通过实际的例子,为读者一步步解开困惑。...constructor 在 ES6 中就引入了类,constructor(构造函数)是类的特殊方法,主要用来做初始化操作,在进行类实例化操作时,会被自动调用。...马上来个例子: class AppComponent { constructor(name) { console.log('Constructor initialization');...undefined ChildComponent ngOnInit Semlinker 我们发现在 ChildComponent 构造函数,是无法获取输入属性的值,而在 ngOnInit 方法,我们能正常获取输入属性的值...constructor 应用场景 在 Angular ,构造函数一般用于依赖注入或执行一些简单的初始化操作。

1.3K20

大白话-constructor

今天来聊下constructor,先说结论,再说为什么,, ====== 结论 ======== -- constructor这个属性,返回的是创建当前对象的函数,也就是所谓的构造函数。...就这样: function abc(){} var xx = new abc; console.log(xx.constructor); //输出的是abc() =======为什么呢?...======= 因为prototype"自动创建了属性"constructor", 刚才说过了,它指向当前对象的构造函数。...", 等于是: abc.prototype.constructor = abc; SO,你console.log(xx.constructor)的时候, 输出的是abc()。...========== 简单的一句话: 新建的对象, 通过constructor来检测并确定它的构造函数, 来继承构造函数的方法, 就是你用prototype添加的那些自定义方法 所以,有时,有时啊

68460

彻底深刻理解js原型链之prototype,proto以及constructor(二)

只往一个方向流向,没有回路 只有Function的proto指向自己的prototype,这也向我们解释了为什么Function.prototype类型是function 我们通过proto只能获取到原型对象的方法和属性...__proto__.constructor.myName="我变了耶!"...的通过原型链都可以引向Object.prototype ** 以上九条我称为原型链之九句真言(不要太在意名字,我自己随便起的 ~) ** 意外收获:this.name和this.job难道不应该在Persion也有一份吗...首先判断perison1是通过new方式被Persion创造出来的,依据九句真言第4条得出 :true perison1.name===Persion.name; 通过关系图可以看到不相等,我已经在意外收获解答了...__proto__===Object.prototype; 只看图可以看到perison1没有prototype,是普通对象所以答案为:js报错~~ Persion.prototype.

70710

彻底深刻理解js原型链之prototype,proto以及constructor(一)

思考: js的引用数据类型都属于函数对象吗?...指针proto JavaScript,万物皆对象!...引用类型值:指的是那些保存在堆内存的对象,意思是,变量中保存的实际上只是一个指针,这个指针执行内存的另一个位置,由该位置保存对象 那么数组,普通对象,函数对象都算是引用数据类型,引用数据类型范围包含函数对象的范围...基本类型值:指的是保存在栈内存的简单数据段;除开函数对象之外的对象都是普通对象,那么普通对象范围是包含基本数据类型的 事实上(函数对象,普通对象)以及(基本数据类型,引用数据类型)是在不同角度对js变量进行的定义...所以答案是 js报错(有没有一种被我坑了的感觉) 构造器constructor思考题解答 思考:a.prototype.proto.constructor指向谁?

77310

彻底深刻理解js原型链之prototype,__proto__以及constructor(二)

只往一个方向流向,没有回路 只有Function的proto指向自己的prototype,这也向我们解释了为什么Function.prototype类型是function 我们通过proto只能获取到原型对象的方法和属性...__proto__.constructor.myName="我变了耶!"...的通过原型链都可以引向Object.prototype 以上九条我称为原型链之九句真言(不要太在意名字,我自己随便起的 ~) 意外收获:this.name和this.job难道不应该在Persion也有一份吗...首先判断perison1是通过new方式被Persion创造出来的,依据九句真言第4条得出 :true perison1.name===Persion.name; 通过关系图可以看到不相等,我已经在意外收获解答了...__proto__===Object.prototype; 只看图可以看到perison1没有prototype,是普通对象所以答案为:js报错~~ Persion.prototype.

94710

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券