JS中例項物件是不是把建構函式和原型兩者的屬性和方法都繼承了?

時間 2021-05-05 19:26:44

1樓:龍騰道默默地

只繼承原型物件的。

至於建構函式上的,在其它標準物件導向語言中,又稱為靜態方法,只能在類上呼叫,例項上沒有的。

澄清一下繼承的意思。a繼承b的意思是a沒有時去b那裡邊找,不是在a本身上轉殖一遍b。

2樓:圈鵝

例項和建構函式的關係就像是水杯工廠有了規格批量水杯一樣,例項是生產出來的水杯,建構函式是工廠。

至於繼承,就好像工廠剛開始生產一代水杯的時候使用的是一代水杯的規格,後來開始再一代水杯的規格上加些東西或者改良些東西,使用的是二代水杯的規格進行生產。這裡的規格就是建構函式與原型方法。創造出來的水杯就是例項。

所以你搞懂了,二代水杯和生產二代水杯的規格乃至於一代水杯的規格之間的關係了嗎?

3樓:

你說的是建構函式的方式去生成物件,此時,物件的_proto指向的是建構函式的原型物件,這倆是乙個東西。你的問題和描述說的壓根不是乙個東西,例項物件會擁有他的建構函式的原型物件以及建構函式的_proto_所指向的物件,直到Object身上的所有屬性和方法。這個是原型鏈.

反對joe06102的回答,顯然的,定義在建構函式的prototype上的方法是可以被繼承的,function AA () {}, AA.prototype.console = () => console方法在例項化之後可以呼叫,這個屬於在建構函式的原型上去新增方法,依然會被繼承的,包括Object身上的方法,例項化的物件也是可以呼叫的。

let aa = new AA() aa.toLocaleString() 是可以呼叫Object身上的方法的,這也是為什麼說Js一切皆物件的原因。

4樓:joe06102

你這個問法有點奇怪。

首先,一般繼承指的是子類與父類之間的關係,而不是例項與其對應類或者建構函式的關係。

其次,物件的原型指的就是他建構函式的原型,不存在是從建構函式還是原型上「繼承」。

回到你的問題,很簡單。如果你把屬性或者方法定義在建構函式原型上,就可以被例項物件訪問到。如果是直接定義在建構函式上,相當於靜態方法,不能在例項物件上訪問。

既然你知道物件屬性原型鏈查詢,那應該能推出上面的結論,因為建構函式本身不在物件的原型鏈當中。

我這個物件是不是媽寶男?

Muuuu 嫁給媽寶男以後一輩子受氣,媽寶男不會覺得他媽媽有錯,他媽媽覺得你得三從四德,要照顧她兒子,以後還會佔著小孩,各種排擠你這個 外來人 因為你嫁進來的最大任務傳宗接代已經完成,剩下的就是壓榨你奉獻給他們家。 莫失莫忘 我對媽寶的理解是什麼都以媽媽圍笑,思想行動等方面,愚孝。看了題主的描述,感...

選擇結婚物件是不是真的要門當戶對?

羅有有 個人感覺最好門當戶對,當然看差到什麼程度,我家是有房產和車子 認識的門不當戶不對是爸媽沒有退休,這也算是吧,我經歷的現實是男生覺得心裡壓力大,當然情商低不會處理問題也是,觀念不一致到極點,如果自身優秀各種自尊心,優越感就另說。如果選擇了還要經受他以後是不是他條件逆轉甩了你,幾乎例子很容易找。...

相親物件是不是怕結婚財產共有?

蘇果 其實我覺得這女孩挺有財產保護意識的,婚前盡量還貸,如果還完了,那這套房子就會完完全全屬於自己。再加上她還有個弟弟,題主不妨多接觸一下,看看她家裡是不是有點重男輕女,所以她需要房子給她安全感。還有,她說以後她弟弟買房要幫一下忙,那這筆錢金額大概多少?她弟弟是打算最近買還是以後?如果是以後買房,你...