Ajax 板


LINE

小弟最近在自學js 之前有學過java(oop觀念應該還算可以) 花了好幾天才「好像」懂javascript的this跟prototype 想說用文字把想法寫下來 結果卡住了T_T 看來我還是不懂 上來請教各位 http://imgur.com/ylBcdX6 想問不知道我這樣對於prototype繼承的想法有錯嗎? 還有就是最後的this.... funcB.call(funcC.prototype) 所以this不是應該要是指向funcC.prototype嗎? 實際把funcC.prototype.var2跟var3 印出來確實是10,100 那為什麼temp.var2, temp.var3 甚至temp.var1 也都可以印出值呢? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.233.112
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1459961075.A.1D5.html
1F:推 jackblack: (3) <- 怪怪的,要先弄清楚 call 和 apply 的意思 04/07 00:52
大大你的意思是說這邊不會是call這個方法嗎? 我是看這邊看到的http://www.codedata.com.tw/javascript/essential-javascript-15-prototype/ 喔乾我現在才發現他是說模擬 所以根本就不會是呼叫call嗎lol....
2F:→ jackblack: function 的 prototype 不是在 new 的時候建立的 04/07 00:54
3F:→ jackblack: 而是在你定義 funcB.prototype = new funcA(); 時建立 04/07 00:55
4F:→ jackblack: new 是建立一個空物件,並且將建構式中的 this 指向這 04/07 00:59
5F:→ jackblack: 個空物件。所以建構式中定義的 this.var2 等都會賦予空 04/07 01:02
6F:→ jackblack: 物件。建構式的 prototype 的 reference 複製給這個空 04/07 01:04
7F:→ jackblack: 物件的 __proto__ 屬性,所以物件可以找到原型物件 04/07 01:05
8F:→ jackblack: 最後變數 temp 會指向這個已經不空的新物件 04/07 01:06
9F:→ jackblack: 當取用物件屬性時,會先從物件本身中尋找 04/07 01:08
10F:→ jackblack: 如果找得到就直接使用,找不到則往上層原型物件去找 04/07 01:09
11F:→ jackblack: 在你的例子裡,temp 沒有 var2,所以往上層原型去找 04/07 01:11
12F:推 jackblack: 上一層的原型物件 funcC.prototype 有 var2 = 10; 04/07 01:14
13F:→ jackblack: 所以就不再繼續往上一層找了 04/07 01:15
14F:→ jackblack: 最好把 this 的觀念整理好才不會很混亂 04/07 01:16
15F:推 jackblack: 看到你有 Java 的底子,練 JS 的時把 Java 暫放一邊 XD 04/07 01:23
※ 編輯: aa06697 (111.255.233.112), 04/07/2016 01:30:58
16F:推 jackblack: 對呀,那篇文章是手動建立空物件、指向原型,再用 call 04/07 01:35
17F:→ jackblack: 來將 function 中的 this 指向 p 04/07 01:36
18F:→ jackblack: 這些動作就是在模擬 new 做的事呀 04/07 01:37
我好像懂了什麼@@ 謝謝你 我再來研究研究 ※ 編輯: aa06697 (111.255.233.112), 04/07/2016 01:41:41 弱弱的問一下 __proto__是都會指到最頂層嗎? 像是我把funcC.prototype.__proto__ 跟 funcC.prototype.constructor 印出來都是 func A 而不是funcB 而且是funcA { var1=0 } 可是印出temp.__proto__ 卻是funcA 裡面是var2, var3, var6 @@ ※ 編輯: aa06697 (111.255.233.112), 04/07/2016 02:49:55 ※ 編輯: aa06697 (111.255.233.112), 04/07/2016 02:52:26
19F:推 eight0: 你用 new funcA 把 funcB 的 prototype 給取代掉了 04/07 03:43
20F:→ eight0: funcB.prototype.constructor 自然就是 funcA 04/07 03:44
21F:→ eight0: funcC 同理 04/07 03:44
22F:推 jackblack: 同樓上,因為 funcC.prototype 是 new 出 04/07 07:14
23F:→ jackblack: 來的新物件,所以沒有 constructor 屬性 04/07 07:14
24F:→ jackblack: ,所以會往上層找,變成指向 funcA,因此 04/07 07:14
25F:→ jackblack: 我們要在 funcC.prototype 加上 construc 04/07 07:14
26F:→ jackblack: tor 指向funcC,funcB.prototype 也是一 04/07 07:14
27F:→ jackblack: 樣的道理 04/07 07:14
28F:推 jackblack: 要記住,物件中如果找不到某一屬性,會「 04/07 07:19
29F:→ jackblack: 一層一層」往原型去找 04/07 07:19
30F:推 jackblack: __proto__ 只會指向上一層,以此類推 04/07 07:39
31F:推 mrbigmouth: 建議先找本Javascript基本觀念的書看一看通盤瞭解 04/07 09:45
32F:→ mrbigmouth: 像JavaScript優良部份 04/07 09:45
33F:→ mrbigmouth: 有些東西越靠自己試只會越糊塗 XD 04/07 09:45
感謝以上的各位~ 自己都是看網路上的資源而已 目前也有打算要買書 各位有推薦不錯的中譯本嗎? 雖然目前都是看英文網站居多但看得有點痛苦= = 怕買書來 一本厚厚的都是英文會翻幾頁就不想看了囧 ※ 編輯: aa06697 (140.116.1.136), 04/07/2016 10:53:05
34F:推 jackblack: 深入淺出 JavaScript 程式設計,有「程式 04/07 13:43
35F:→ jackblack: 設計」這本 04/07 13:43
36F:推 mrbigmouth: JavaScript優良部份有中譯 只學基本觀念很推這本 04/07 15:44
37F:→ mrbigmouth: 也比較薄 04/07 15:44
38F:推 johnny9144: 優良部份推!會提到你問的這些事情,可是可能要多看幾 04/07 17:17
39F:→ johnny9144: 次,一開始可能會有些吃力 04/07 17:17
40F:→ aa06697: thx~~~~~~~ 04/07 22:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP