function GirlFriend() { this.name = "Alice"; } //现在我设置GirlFriend()这个函数的prototype属性 //一般来说直接用匿名的对象就行,我这里是为了方便理解, //先定义一个hand对象再把hand赋值给GirlFriend()的prototype var hand = { whichOne: "right hand", someFunction: function () { console.log("not safe for work."); } }; GirlFriend.prototype = hand; //这个时候,我们可以用GirlFriend()作为构造函数,构造出myObject对象 var myObject = new GirlFriend(); console.log(myObject.__proto__ === GirlFriend.prototype) //true
1. __proto__是每个对象都有的一个属性,而prototype是函数才会有的属性。
2. __proto__指向的是当前对象的原型对象,而prototype指向的,是以当前函数作为构造函数构造出来的对象的原型对象。看起来有点绕,我 show you the code,上面我们用右手作为原型来给自己构造一个女朋友: