__proto__ 与 prototype】的更多相关文章

我想javascript中的原型链一直想很多初学javascript的同学感到非常的困惑,今天看了一些文章,结合自己的理解,把原型链这个东西从新来整理一下,如有不对之处,望大家帮忙指出. 首先,我们应该认识的一个问题是,js中的继承是指对__proto__的继承,而不是prototype,这里有同学要问了:“那他们两个有么子区别呢?”,  请看官方的定义: 1. A function's .prototype is actually the prototype of things made by…
一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ === Function.prototype  // true Boolean.__proto__ === Function.prototype // true String.__proto__ === Function.prototype  // true Object.__proto__ ==…
值得一说的是对象没有prototype属性,只有函数有prototype属性. var a = function(){}; a.prototype.d = function(){ console.log(); } prototype相当于给函数a添加了一个属性. var a = function(){}; a.prototype.d = function(){ console.log(); } var b = new a(); b.d(); 用prototype添加的属性,实例化后这个函数的对象…
instanceof运算代码 function instance_of(L, R) { //L 表示左表达式,R 表示右表达式 var O = R.prototype; // 取 R 的显示原型 L = L.__proto__; // 取 L 的隐式原型 while (true) { if (L === null) return false; if (O === L) // 这里重点:当 O 严格等于 L 时,返回 true return true; L = L.__proto__; } } v…
大家都说JavaScript的属性多,记不过来,各种结构复杂不易了解.确实JS是一门入门快提高难的语言,但是也有其他办法可以辅助记忆.下面就来讨论一下JS的一大难点-对象布局,究竟设计JS这门语言的人当时是怎么做的?设计完之后又变成了什么? 我们来看一张图:  相信大家对这张图都不陌生了,构造函数有一个prototype属性指向其原型.相反原型也有一个constructor指向构造函数.与此同时实例也有一个constructor指向构造函数,这简直就是互相捆绑生怕找不到啊不是吗? 还有一个我们称…
大家都说JavaScript的属性多,记不过来,各种结构复杂不易了解.确实JS是一门入门快提高难的语言,但是也有其他办法可以辅助记忆.下面就来讨论一下JS的一大难点-对象布局,究竟设计JS这门语言的人当时是怎么做的?设计完之后又变成了什么? 我们来看一张图:  相信大家对这张图都不陌生了,构造函数有一个prototype属性指向其原型.相反原型也有一个constructor指向构造函数.与此同时实例也有一个constructor指向构造函数,这简直就是互相捆绑生怕找不到啊不是吗? 还有一个我们称…
今天重温了下Javacript,给大家带来一篇Javascript博文,相信对于Javacript有一定了解的人都听过prototype原型这个概念,今天我们深度的分析下prototype与__proto__. 好了,下面看一个非常简单的例子: var Person = function(name) { this.name = name ; }; var p = new Person("Ben"); console.log(p.name); 代码简单的 你不用说明了,如果现在让大家根据…
参考:http://stackoverflow.com/questions/650764/how-does-proto-differ-from-constructor-prototype http://blog.rainy.im/ __proto__ is the actual object that is used in the lookup chain to resolve methods, etc. prototype is the object that is used to build…
一.2个参考网址: http://icekiller110.iteye.com/blog/1566768 http://www.cnblogs.com/snandy/archive/2012/09/01/2664134.html 我是看第一个明白的最多的,因为归纳的比较到位,第二个网址写的内容比较详实 二.概念 __proto__是JS内部使用寻找原型链的属性. prototype是显示修改对象的原型的属性. 三.一个例子 <script> var Person = function () {…
var Person = function(name) {}; Person.prototype.say = function() { console.log("Person say"); } Person.prototype.age = 20; var Man = function() {}; Man.prototype = new Person(); Man.prototype.physique = 'strong'; Man.prototype.age = 25; var man…