关于 JavaScript prototype __proto__ 一点总结
http://www.cnblogs.com/wbin91/p/5265163.html
先上代码
function(y) Foo{ this.y = y;}
Foo.prototype.x = 10;
Foo.prototype.calculate = function(z){return this.x + this.y + z;};
var b = new Foo(20);
var c = new Foo(30);
对于JavaScript中的prototype和__proto__网上已经有很多很好的讲解了, 比如 JavaScript中__proto__与prototype的关系, MDN proto, MDN prototype.
这里做一下总结, prototype是所有函数都有的属性, 表示这个函数作为构造函数时, 创建的对象的__proto__属性. __proto__是对象的[[Prototype]]属性(函数也是对象), 表示对象从原型链中继承下来的属性, 关于继承和原型链可参考 MDN 文档. (在prototype中定义的属性, 能够被所有该类型的对象共享, 对prototype的修改会影响到所有该类型的对象, 同样我们可以通过prototype来减少内存的占用. 由于原型链会一直递归查询到Object.prototype.__proto__, 因此一个复杂的类型系统可能会影响到性能(每次访问属性都会查询到原型链顶), 解决方法是必要是打断原型链.)
参考文献
关于 JavaScript prototype __proto__ 一点总结的更多相关文章
- javascript prototype __proto__区别
An Object's __proto__ property references the same object as its internal [[Prototype]] (often refer ...
- Javascript Prototype __proto__ constructor 三者的关系
JavaScript三大毒瘤 --- this,原型链,作用域 在我等菜鸟一步一步升级中的过程中,这三个概念总是困扰这我们(可能只有我吧,我比较蠢).这三个东西往往都很绕,今天我就来分享一下我对原型. ...
- JavaScript中__proto__与prototype的关系
一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ ...
- 深入理解JavaScript原型:prototype,__proto__和constructor
JavaScript语言的原型是前端开发者必须掌握的要点之一,但在使用原型时往往只关注了语法,其深层的原理并未理解透彻.本文结合笔者开发工作中遇到的问题详细讲解JavaScript原型的几个关键概念, ...
- JavaScript:Function/Object/prototype/__proto__
console.log(Object.__proto__===Function.prototype); //true console.log(Object.prototype.__proto__); ...
- Javascript深入__proto__和prototype的区别和联系
有一个一个装逼的同事,写了一段代码 function a(){} a.__proto__.__proto__.__proto__ 然后问我,下面这个玩意a.__proto__.__proto__.__ ...
- JavaScript的__proto__、prototype和继承
JavaScript也是可以“继承”的! 各位看官或是好奇,或是一知半解.什么是prototype,__proto__,constructor.哪种继承方式好.今天就在这交流交流. 什么是protot ...
- JavaScript中__proto__与prototype的关系(转)
一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ ...
- javascript prototype原型链的原理
javascript prototype原型链的原理 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: <script type="text/javasc ...
随机推荐
- eclipse+spket+Extjs4.2.1开发环境搭建
一.开发工具配置 1.http://www.eclipse.org/downloads/下载Eclipse,解压. 2.http://spket.com/download.html ...
- unity 内存中切割图片
一般的说我们切割图片是将一张图片资源切割成更小的图片资源,也就是说在资源上就进行了切割,比如ugui上的切割方法. 如果我们有一些情况比如做拼图,可能让玩家自己选择自己的生活照作为拼图的原图. 那么我 ...
- LINQ to XML
void Main() { string path = @"C:\Users\knife\Desktop\test.xml"; XDocument xml = XDocument. ...
- JAVA课程体系
文件流 单点登录 maven.maven私服 jenkins 小程序 支付 webservice/webapi redis 工作流 权限:shiro 高并发 springBoot dubbo 消息推送 ...
- Linux LVM硬盘管理之一:概念介绍
一.LVM概念介绍: LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻 ...
- DevWebForm控件,触发用客户端事件
ClientInstanceName+".Raise"+"事件名", 例如: ClientInstanceName.RaiseValueChanged();
- Rails : 产品环境(生产环境)的部署
bundle install rails server (默认为开发环境) rails server -p80 -e production (指定为生产环境 ,并自定义指定站点端口) rake RAI ...
- [综] Sparse Representation 稀疏表示 压缩感知
稀疏表示 分为 2个过程:1. 获得字典(训练优化字典:直接给出字典),其中字典学习又分为2个步骤:Sparse Coding和Dictionary Update:2. 用得到超完备字典后,对测试数据 ...
- docker使用中国镜像
最近使用docker,在国内下载速度很不稳定,所以一直在找中国的镜像仓库,又是改配置又是命令行,最后发现网易提供了一个不错的公共仓库,直接从仓库下载就可以了 docker pull hub.c.163 ...
- C# 图片流下载;图片流输出
图片流下载 string filePath = HttpContext.Current.Server.MapPath("/img/wxPic/"); if (!Directory. ...

