首页 >

js原型链原理看图说明【javascript】

web前端|js教程js原型链原理看图说明【javascript】
js原型链
web前端-js教程
当初ECMAscript的发明者为了简化这门语言,同时又保持继承的属性,于是就设计了这个链表。。
在数据结构中学过链表不,链表中有一个位置相当于指针,指向下一个结构体。
试客联盟源码或者网上商城建设,vscode对显卡要求,ubuntu能用qq,tomcat内存增长分析,太空爬虫,selenium php,益阳网络seo优化报价,php聊天室网站源码,dz论坛手机端模板lzw
于是乎__proto__也一样,每当你去定义一个prototype的时候,相当于把该实例的__proto__指向一个结构体,那么这个被指向结构体就称为该实例的原型。
搜虎vip源码,ubuntu怎么新增用户,tomcat用自己的域名,小马盘爬虫,php大并发处理,看seo看seolzw
文字说起来有点儿绕,看图说话
登陆页源码免费下载,vscode高亮php语言,ubuntu手动升级,tomcat 访问jsp,sqlite怎么增加外键,前端开发现在那个框架热门,栀子牡丹花瓣里小爬虫,php 相差时间,热门seo代理平台,制作网站源码,jquery 分享网页代码,广州模板网站建设lzw
 
var foo = {
x: 10,
y: 20
};

js原型链原理看图说明【javascript】


当我不指定__proto__的时候,foo也会预留一个这样的属性,
如果有明确的指向,那么这个链表就链起来啦。
很明显,下图中b和c共享a的属性和方法,同时又有自己的私有属性。
__proto__默认的也有指向。它指向的是最高级的object.prototype,而object.prototype的__proto__为空。
 
var a = {
x: 10,
calculate: function (z) {
return this.x + this.y + z
}
};
var b = {
y: 20,
__proto__: a
};
var c = {
y: 30,
__proto__: a
};
// call the inherited method
b.calculate(30); // 60

js原型链原理看图说明【javascript】

理解了__proto__这个属性链接指针的本质。。再来理解constructor。

当定义一个prototype的时候,会构造一个原形对象,这个原型对象存储于构造这个prototype的函数的原形方法之中.

 
function Foo(y){
this.y = y ;
}
Foo.prototype.x = 10;
Foo.prototype.calculate = function(z){
return this.x+this.y+z;
};
var b = new Foo(20);
alert(b.calculate(30));

js原型链原理看图说明【javascript】

【参考文档】

http://dmitrysoshnikov.com/ecmascript/javascript-the-core/


js原型链原理看图说明【javascript】
  • 浅谈JS原型对象和原型链【javascript】
  • 浅谈JS原型对象和原型链【javascript】 | 浅谈JS原型对象和原型链【javascript】 ...

    js原型链原理看图说明【javascript】
  • 小白谈谈对JS原型链的理解【javascript】
  • 小白谈谈对JS原型链的理解【javascript】 | 小白谈谈对JS原型链的理解【javascript】 ...

    js原型链原理看图说明【javascript】
  • js的原型链是什么?
  • js的原型链是什么? | js的原型链是什么? ...