js & object & prototype & proto & prototype chain

constructor prototype === instance proto

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype


let log = console.log; function Foo() {
name: "Foo";
} // var foo = new Foo();
let foo = new Foo(); log(Foo.name);
log(foo.name); log(`Foo.prototype =`, Foo.prototype);
log(`foo.prototype =`, foo.prototype); log(`Foo.__proto__ =`, Foo.__proto__);
log(`foo.__proto__ =`, foo.__proto__); log(`Foo.prototype === foo.__proto__`, Foo.prototype === foo.__proto__);

"use strict";

/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2019-08-16
*
* @description prototype-chain (prototype & __proto__ )
* @augments
* @example
* @link https://hackernoon.com/understand-nodejs-javascript-object-inheritance-proto-prototype-class-9bd951700b29
*
*/ let log = console.log; function Foo() {
name: "Foo";
} // var foo = new Foo();
let foo = new Foo(); log(Foo.name);
// Foo log(foo.name);
// undefined log(`Foo.prototype =`, Foo.prototype);
// {constructor: ƒ}
// constructor: ƒ Foo()
// __proto__: Object
log(`foo.prototype =`, foo.prototype);
// undefined log(`Foo.__proto__ =`, Foo.__proto__);
// ƒ () { [native code] }
log(`foo.__proto__ =`, foo.__proto__);
// {constructor: ƒ}
// constructor: ƒ Foo()
// __proto__: Object log(`Foo.prototype === foo.__proto__`, Foo.prototype === foo.__proto__);
// true

https://hackernoon.com/understand-nodejs-javascript-object-inheritance-proto-prototype-class-9bd951700b29

https://stackoverflow.com/questions/9959727/proto-vs-prototype-in-javascript

https://www.freecodecamp.org/news/prototype-in-js-busted-5547ec68872/


( new Foo ).__proto__ === Foo.prototype;
( new Foo ).prototype === undefined;

function Point(x, y) {
this.x = x;
this.y = y;
} var myPoint = new Point(); // the following are all true
myPoint.__proto__ == Point.prototype
myPoint.__proto__.__proto__ == Object.prototype
myPoint instanceof Point;
myPoint instanceof Object;











xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!



js & object & prototype & __proto__ & prototype chain的更多相关文章

  1. Object.prototype.__proto__, [[prototype]] 和 prototype

    Object.prototype.__proto__ , [[prototype]] 和 prototype Object.prototype.__proto__ 是什么? __proto__ 是一个 ...

  2. constructor __proto__ prototype

    js里面constructor __proto__  prototype这三个属性比较难理解,在重点研究这三个属性后,在这里做一个笔记, constructor:构造器,每个对象都有这个属性,他指向构 ...

  3. 再次理解JS的prototype,__proto__和constructor

    个人总结: 下面这篇文章很好的讲解了js原型,原型链,个人的总结是要记住这三个属性 prototype.__proto__和constructor 首先明确,js中一切都是对象object(A). ( ...

  4. Object & prototype & __proto__ All In One

    Object & prototype & proto All In One js 原型,原型链,原型对象 const obj ={}; // {} const obj = new Ob ...

  5. prototype chain & prototype & __proto__

    prototype chain & prototype & proto prototype chain MDN https://developer.mozilla.org/en-US/ ...

  6. JavaScript:Function/Object/prototype/__proto__

    console.log(Object.__proto__===Function.prototype); //true console.log(Object.prototype.__proto__); ...

  7. 彻底搞懂js __proto__ prototype constructor

    在开始之前,必须要知道的是:对象具有__proto__.constructor(函数也是对象固也具有以上)属性,而函数独有prototype 在博客园看到一张图分析到位很彻底,这里共享: 刚开始看这图 ...

  8. js 如何打印出 prototype 的查找路径

    js 如何打印出 prototype 的查找路径 Function function func (name) { this.name = name || `default name`; } f = n ...

  9. javascript prototype __proto__区别

    An Object's __proto__ property references the same object as its internal [[Prototype]] (often refer ...

随机推荐

  1. 【汇编实践】go assembly

    https://mp.weixin.qq.com/s/B577CdUkWCp_XgUc1VVvSQ asmshare/layout.md at master · cch123/asmshare htt ...

  2. (014)每日SQL学习:oracle下lag和lead分析函数

    /*语法*/ lag(exp_str,offset,defval) over() Lead(exp_str,offset,defval) over() --exp_str要取的列 --offset取偏 ...

  3. 利用Mixins扩展类功能

    8.18 利用Mixins扩展类功能 - python3-cookbook 3.0.0 文档 https://python3-cookbook.readthedocs.io/zh_CN/latest/ ...

  4. null调整为not null default xxx,不得不注意的坑

    最近碰到一个case,值得分享一下. 现象 一个DDL,将列的属性从null调整为not null default xxx, alter table slowtech.t1 modify name v ...

  5. 算法总结篇---字典树(Trie)

    目录 写在前面 具体实现 引例: 引例代码: 例题 Phone List Solution: The XOR Largest Pair Solution L语言 Solution: 写在前面 字典树是 ...

  6. maven pom文件的 name 标签 和 url标签到底是什么作用

  7. Cmder的findstr问题

    在环境变量中加入C:\windows\system32即可

  8. CS229 Lecture 01

    CS229 Lecture notes 01 机器学习课程主要分为4部分:监督学习:学习理论:无监督学习:增强学习. $x^{(i)}$表示特征,$y^{(i)}$表示目标,$i=1...m$.m是训 ...

  9. CCDictionary 用调试器查看问题

    if(dic->objectForKey("uid")) uid = dic->valueForKey("uid")->getCString( ...

  10. 3. Linux常用系统状态检测命令

    1.ifconfig :于获取网卡配置与网络状态等信息,如网卡名称.IP.MAC等 2.uname -a :完整地查看当前系统的内核名称.主机名.内核发行版本.节点名.系统时间.硬件名称.硬件平台.处 ...