为了弄清楚Javascript原型链中的this指向问题,我写了个代码来测试: var d = { d: 40 }; var a = { x: 10, calculate: function (z) { return this.x + this.y + z + this.d }, __proto__:d }; var b = { y: 20, __proto__: a }; var c = { y: 30, __proto__: a }; 运行如下的代码进行测试: console.log(b.c…
title: 'JavaScript原型链:prototype与__proto__' toc: false date: 2018-09-04 11:16:54 主要看了这一篇,讲解的很清晰,最主要的一点为: 若: var Person = function () { }; var p = new Person(); 则: p.__proto__ = Person.prototype; 当调用p.xxx()时,首先在p中找xxx这个属性,没有的话从p的__proto__(即Person的proto…
在javascript中,几种数据类型String,Number,Boolean,Object,Function都是函数,可称之为函数对象. 可以说拥有prototype属性的都是函数. 所有对象都拥有__proto__属性,因为原型链就是靠__proto__的指向进行构建. 使用函数,并在该函数前添加new操作符的调用,可构建一个对象,如: function Foo() { console.log("constructor function Foo"); } var f1 = new…