鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ prototype 是一個指向什么對象的指針?

prototype 是一個指向什么對象的指針?

在js高程書上說到:每個函數(shù)都有一個prototype屬性,這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以由特定類型的所有實例共享的屬性和方法。

這里這句話我看不是很懂,假如這句話換一個說法該怎么說?
還有這里的特定類型指的是什么類型?

回答
編輯回答
你好胸
在函數(shù)前面加上 new 來調(diào)用,也就是利用構(gòu)造器函數(shù)產(chǎn)生對象的時候, 新的函數(shù)對象被賦予一個prototype
屬性,它的值是一個包含constructor屬性且屬性值為該函數(shù)對象本身。 this.prototype =
{constructor:this},

這個 prototype屬性最大的作用的就是存放繼承特征,訪問構(gòu)造器上的原型屬性和方法,也就是這里的共享屬性和方法。 這里可以跟js 高程上的用途對應(yīng)一下。

 // 定義一個構(gòu)造器,并擴(kuò)充它的原型
  var Man = function(name) {
     this.name = name;
  }
  Man.prototype.get_name = function() {
      return this.name;
   }
 // 利用 new 產(chǎn)生一個新的函數(shù)對象
 var myMan = new Man ("hero");
 // 訪問構(gòu)造器上的擴(kuò)充方法
var name = myMan.get_name();

所以有一種繼承方法,就是修改函數(shù)對象的prototype屬性,實現(xiàn)繼承,

再深入,就涉及到 原型鏈 和 Function.__proto__

2018年9月13日 23:12
編輯回答
還吻

prototype是函數(shù)的原型對象,當(dāng)你new這個函數(shù)的話,獲得一個對象,這個對象同時指向函數(shù)的原型

2017年11月7日 13:43
編輯回答
陪她鬧

他這個說法確實繞,你可以不用理解這個話。這個問題也并不是你的問題title那樣問的。
My analysis...
每個函數(shù)都有一個prototype屬性 而不需要理解指針的什么的 你也不用去想這句話 “這個屬性是一個指針,指向一個對象”,你就理解 每個函數(shù)都有一個prototype屬性 這個屬性是一個對象
The like this

function A(){}
A.prototype.xxx = function(){}

因為他是一個對象 所以可以給prototype添加屬性和方法。
so
當(dāng)我們

var b = new A();

的時候 就可以用

b.xxx()

來做一些操作了。并且假如你再繼續(xù)new A()的話 他們之間也是互補影響的。
(以上的言論 并不足以結(jié)束 為什么變量b可以調(diào)用到A的原型上的方法,這里默認(rèn)你知道。)

2018年9月21日 22:31