JavaScript的constructor 、prototype解析 -- 原型模式知识扩展

9 篇文章 0 订阅
订阅专栏
8 篇文章 0 订阅
订阅专栏

1、示例代码

aperson1person2都有一个属性constructor,指向Person
bPerson也有constructor,指向Function,因为PersonFunction的实例



2、constructor ( 每个对象都有此属性)





3、prototype ( 每个构造函数都有此属性 )

每当对象new后,根据特定的规则为函数创建一个prototype属性,这个属性指向函数的原型对象
1. Person.prototype指向Person的原型对象(下下图的箭头图可解析)在默认情况下,所有原型都会获得一个constructor属性,这个属性 包含一个指向原型所在函数的指针
2. Person.prototype.constructor指向函数Person


a、示例代码


b、原理图:

       

参考来源:代码参考《JavaScript高级编程第三版》,结合了个人的理解。


构造函数-原型-对象原型-constructor属性-原型继承-原型链
xiaohu_haha的博客
05-21 537
1、构造函数 面对对象编程的特性:比如封装性、继承性等,可以借助于构造函数来实现,但是会存在浪费内存的问题 <script> // 构造函数函数名一般习惯以大写字母开头 // this指向的实例对象 function Person(x, y) { this.uname = x, this.age = y, this.sing = function() { console.log('我会唱歌');
javascript -- 创建对象 原型模式
一个憨憨的前端之路
11-29 839
   每个函数都会创建一个 prototype 属性, 这个属性是一个对象, 包含应该由特定引用类型的实例共享的属性和方法。 实际上,这个对象就是通过调用构造函数创建的对象的原型。    使用原型对象的好处是, 在它上面定义的属性和方法可以被对象实例共享。 原来在构造函数中直接赋值给对象实例的值, 可以直接赋值给它们的原型, 如下所示: function Person() {} Person.prototype.name = "Jin"; Person.prototype.age = 18; Person.
js 原型 _proto_, prototype, contructor的联系
LEI20012000的博客
04-01 233
困扰了本人好久的原型,很让人头疼,苦心钻研后,总结如下: 下面理解下: 需要记住几点: 记住!!!记住!!!记住!!!(重要的说3遍) 1. 实例的_proto_属性指向构造函数的原型 2. Function的构造函数是它自己 3._proto_和contructor属性是对象所独有的 4.prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有_proto...
Personprototype、__proto__、constructor解析【逆战班】
Luoshunb的博客
02-23 1137
一、构造函数、实例化对象 function Person(name) { this.name = name; } var person1 = new Person('xiaoming'); var person2 = new Person('xiaoli'); function后面的方法名 Person 就是一个构造函数,一般首字母大写,需要new实例化; new之后的对象就是实例化对象,此处...
prototypeconstructor那点事儿
weixin_34248705的博客
08-02 88
一、什么是原型(prototype)   1、prototype本质上还是一个JavaScript对象;   2、每个函数都有一个默认的prototype属性;   3、通过prototype我们可以扩展Javascript的内建对象 如果这个函数被用在创建自定义对象的场景中,我们称这个函数为构造函数。 比如: 代码 // 构造函数 function Person...
constructorprototype、__proto__详解笔记
weixin_33752045的博客
09-30 227
最近在看设计模式时,遇到一些关于继承原型之类的知识,对于constructorprototype、proto__彼此的区别关联有些懵逼,搜了一些文章,现将对此知识的理解整理如下(笔记来源于以下地址:hanekaoru.com/constructor…-%E5%92%8C-prototype-%E5%8C%BA%E5%88%AB%E5%92%8C%E5%85%B3%E7%B3%BB/ ,segm...
Js中constructor, prototype, __proto__ 详解
web前端开发
10-29 242
本文为了解决以下问题:__proto__(实际原型)和prototype(原型属性)不一样!!!constructor属性(原型对象中包含这个属性,实例当中也同样会继承这个属性)prot...
JavaScript中的原型prototype完全解析
10-22
接下来,我们将详细解析JavaScript中的原型和prototype,以及与之密切相关的__proto__属性和原型链。 首先,要理解prototype,需要明白以下几个关键概念: 1. JavaScript中所有东西都是对象:在JavaScript中,数字...
JavaScript中的prototypeconstructor简明总结
10-26
JavaScript 是一种基于原型的面向对象编程语言,它利用 prototypeconstructor 两个核心概念来实现对象的继承和原型链继承。在 JavaScript 中,几乎所有的数据类型都有一个 constructor 属性,它指向创建这个数据...
javascript中的_proto_、constructorprototype详解
IT_10的博客
07-23 334
首先,在JavaScript中,任何对象都有一个proto属性;任何方法都有prototype属性,prototype本身也是一个对象 ,所以其中也有一个proto属性,另外还有一个constructor属性。 &amp;amp;amp;lt;script&amp;amp;amp;gt; function myFunc() { } var a=new myFunc(); consol...
原型链----看懂_proto_和prototype
wenmin1987的博客
09-15 614
文章目录 1. 前言 2. _ _ proto _ _ 属性 3. prototype属性 4. constructor属性 5. 总结 提示:不要排斥,静下心来,认真读完,你就搞懂了!(可以先看一下最后的总结部分再回过头来完整看完) 1. 前言   作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,__prot..
详解js中prototypeconstructor以及__proto__的关系
明天回火星
05-11 3411
原文  http://www.cnblogs.com/zichi/p/4363175.html 三者暧昧关系简单整理 在javascript中,prototypeconstructor以及__proto__之间有着“著名”的剪不断理还乱的三角关系,楼主就着自己对它们的浅显认识,来粗略地理理以备忘,有不对之处还望斧正。 楼主的一句话理解就是:某个对象的cons
js构造函数constructor和原型prototype
xiasohuai的博客
09-28 1224
所有引用类型(函数,数组,对象)都拥有__proto__属性(隐式原型) 所有函数拥有prototype属性(显式原型)(仅限函数)  原型对象:拥有prototype属性的对象,在定义函数时就被创建   __proto__, prototypeconstructor 下面这三个属性的定义非常重要,始终贯穿在原型中。 prototype:此属性只有构造函数才有,它指向的是当前构造函数的...
JS constructor探讨(一):为什么要设置prototype.constructor
甘焕的博客
05-30 6862
每次实现JS的继承时,代码里必有如下两句:// 用于设置原型 Employee.prototype = new Person() // 设置原型的构造器 Employee.prototype.constructor=Employee实现原型链就靠第一句话,但第二句话有什么用呢?先看示例代码:function Person(username) { this.username = usern
javascript-prototype
weixin_34128237的博客
08-04 76
1、我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。 2、原型对象实际就是一个构造函数的实例对象,与普通的实例对象没有什么本质上的区别,js中每一个对象都有一个原型对象。 不过他比较特殊,该对象所包含的所有属性和方法能够供构造函数的所有实例共享,这就是其他语言所说的继...
关于JS中的constructorprototype
热门推荐
niuyongjie的专栏
11-14 2万+
     在学习JS的面向对象过程中,一直对constructorprototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下:     我们都知道,在JS中有一个function的东西。一般人们叫它函数。比如下面的代码js代码: function Person(name){ alert(name);}Person(js);//js   
深入学习js之——原型和原型链#1
weixin_34161083的博客
01-29 115
深入学习js系列是自己阶段性成长的见证,希望通过文章的形式更加严谨、客观地梳理js的相关知识,也希望能够帮助更多的前端开发的朋友解决问题,期待我们的共同进步。 如果觉得本系列不错,欢迎点赞、评论、转发,您的支持就是我坚持的最大动力。 开篇: 在Brendan Eich大神为JavaScript设计面向对象系统的时候,借鉴了Self 和Smalltalk这两门 基于原型的语言,之所以选择基于原型的...
原型模式Prototype,constructor,__proto__详解
weixin_34413103的博客
09-03 142
最近由于在找工作,又拿起《JavaScript高级程序设计》看了起来,从中也发现了自己确实还是有很多地方不懂,刚刚看到原型模式这里,今天终于搞懂了,当然,我也不知道自己的理解是否有错。 1、prototype 开头第一句话说,我们每创建一个函数,就会有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含由特定类型或者实例共享的属性和方法。 function...
写文章

热门文章

  • echarts 柱状图数字在顶部显示 37007
  • vue中出现 There are multiple modules with names that only differ in casing的问题 35178
  • vue使用 better-scroll的参数和方法 18954
  • 关于: Error in mounted hook: "Error: Component series.line not exists. Load it first 15680
  • element ui 表格全选与否 15055

分类专栏

  • web前端 9篇
  • js模块化 2篇
  • js 9篇
  • js基础 8篇
  • excharts技巧 6篇
  • vue知识 10篇
  • eslint 1篇
  • tortoisegit 1篇
  • git 3篇
  • axios 1篇
  • javaee 1篇
  • webpack 1篇
  • webpack技巧
  • element ui 5篇
  • python 8篇
  • django 4篇
  • mysql 1篇

最新评论

  • 解决打开git bash一闪而过问题

    106106106: 请问您最后怎么解决的呀

  • 解决打开git bash一闪而过问题

    话歌舍: win11的替换不了,没权限

  • vue中出现 There are multiple modules with names that only differ in casing的问题

    .一二三四五: 哈哈 楼主好还挺好脾气的 不过我的这个确实是像你说的一样 文件大小写不对应导致的

  • 关于: Error in mounted hook: "Error: Component series.line not exists. Load it first

    张子溪: 谢谢

  • element-ui 滚动条组件 el-scrollbar 的使用

    bluemengcom: 内容换成table就不行了

大家在看

  • 相对路径与绝对路径和os模块 699
  • C++ | Leetcode C++题解之第504题七进制数
  • python的文件操作 265
  • 问:数据库索引最佳实践,11条~ 383
  • 《东日西雨,南暖北寒;日升日落,南袁北褶》

最新文章

  • webpack4下的ES6转ES5和兼容IE的配置
  • JavaScript:for in 和 for of的区别详解
  • vue-cli3.0 + axios 进行跨域
2020年1篇
2019年16篇
2018年6篇
2017年20篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢雕塑小品厂家玻璃钢雕塑定制图片淮安商场美陈制作菏泽仿铜玻璃钢雕塑厂家玻璃钢花盆哪个产品好用海口玻璃钢卡通雕塑玻璃钢红军雕塑生产宣威市玻璃钢雕塑设计报价玻璃钢雕塑批发市场浙江玻璃钢雕塑品牌户外玻璃钢雕塑保养绵阳玻璃钢雕塑翻新上蔡玻璃钢雕塑厂家北京玻璃钢雕塑浮雕内销熊猫玻璃钢雕塑溧阳玻璃钢游乐场门头雕塑玻璃钢雕塑潮牌商丘玻璃钢花盆厂玻璃钢雕塑厂哪家比较好定西玻璃钢卡通雕塑订做陕西玻璃钢浮雕学校抽象雕塑太空主题商场美陈遵义玻璃钢伟人像雕塑新密景观园林玻璃钢卡通雕塑百货商场元旦圣诞春节美陈创意玻璃钢雕塑最经典湖北定制玻璃钢雕塑联系方式双峰玻璃钢花盆花器广安玻璃钢人物雕塑价格大连玻璃钢动物雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化