作者oopFoo (3d)
看板Soft_Job
標題Re: [討論] 請大家聊聊 JavaScript的缺陷
時間Mon Nov 9 17:55:58 2020
我覺得Javascript最大的問題是它是prototype語言,大家不習慣,尤其從class based語言來的人。
像我上禮拜在看web component的時候,看不懂一段程式。
https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
https://reurl.cc/d5llbz
if (this.hasOwnProperty(prop)) {
let value = this[prop];
delete this[prop];
this[prop] = value;
}
研究好久才明白
let value = this[prop]; // 這個是instance 的prop.
delete this[prop]; //砍掉
this[prop] = value; //使用prototype 的set function.
也順便懂了以前看不明白的一個程式
this.clickClose = this.clickClose.bind(this); // 懂了很簡單,但不懂就覺得奇怪
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.96.183 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1604915761.A.F0F.html
1F:推 dreamnook: 11/09 19:48
2F:→ x246libra: 原型鏈要搞懂,也是有點複雜,暈,this也是麻煩 11/09 20:36
3F:→ Tenno081: 還是我們C#最NICE惹 11/09 20:51
4F:推 shaomi: 推 11/09 20:53
5F:推 dream1124: js兩大噩夢 ─ 奇怪的原型鍊和怪里怪氣的轉型 11/09 21:09
6F:→ OhNo386: 10種人寫js會有11種寫法 11/09 22:06
7F:→ OhNo386: 然後很多code都看不懂 很不方便 11/09 22:09
8F:推 CaptainH: prototype, this, new 應該是js三大致命缺陷,完完全全 11/09 22:49
9F:→ CaptainH: 的設計失敗。 11/09 22:49
10F:→ CaptainH: 能意識到的就很不錯了,很多碼農還會敝帚自珍地把語言 11/09 22:50
11F:→ CaptainH: 的坑當成寶 11/09 22:50
12F:推 CaptainH: lua也是原型鏈繼承,但其metatable的設計比js混亂的prot 11/09 22:53
13F:→ CaptainH: otype, __proto__, [[Proto]], constructor優雅約一百 11/09 22:53
14F:→ CaptainH: 倍吧… 11/09 22:53
15F:推 CaptainH: this和new則是更加愚蠢的機制。如果你想自創一門新語言 11/09 23:03
16F:→ CaptainH: ,然後你刻意加兩個專門雷人的規則,也很難比js的this和 11/09 23:03
17F:→ CaptainH: new還雷。 11/09 23:03
18F:推 shter: 習慣了反而覺得 new ES6 Class 比 ES5 new function 還難寫 11/10 00:38
19F:→ shter: 用來 new 的 function , 其內部沒用 this 指的 function 11/10 00:39
20F:→ shter: 在原本的 scope 內就不會有端口接出去,屬於私有範圍 11/10 00:39
21F:→ shter: 要指出去的就 this.xxx = function 用就好了 11/10 00:40
22F:→ shter: 它的 new 設計用習慣了反而覺得很理所當然 11/10 00:40
※ 編輯: oopFoo (101.137.203.237 臺灣), 11/10/2020 06:32:23
23F:→ jobintan: C#我也在玩,在unity裏面,不過網頁前端目前仍然以JS為 11/10 07:09
24F:→ jobintan: 主,不然只能祈禱哪天Blazor的排名與React相當,畢竟是 11/10 07:11
25F:→ jobintan: M$爸爸維護的東西,應該是前途有望才是。 11/10 07:11
26F:→ jobintan: 話說原型鏈,自從ES6出了class之後就沒在用了。 11/10 07:12
27F:推 visa9527: .Net 的東西這輩子注定不可能成為前端主流 11/10 11:48
28F:→ samuel1988: Blazor研究一下。比javascript好寫幾萬倍 11/10 13:36
29F:→ samuel1988: We assembly 已經成為主流標準我等著看javascript沒 11/10 13:37
30F:→ samuel1988: 落變成和flash一樣落 11/10 13:37
31F:推 meowyih: 看了一下webassembly的wiki, 在Ending定律那段還真有夠 11/10 14:20
32F:→ meowyih: 酸 XDD 有興趣的可以去看一下 11/10 14:20
33F:推 BBSealion: this 真的是個大坑... 11/10 15:41
34F:→ jobintan: Blazor算是c#的框架唄,可以跟react比比看哪個比較好? 11/11 07:13
35F:→ feveral: Js再爛也輪不到.net講話 11/11 11:24
36F:推 alihue: js 爛輪不到 c# 講話? 同溫層很厚喔 是不是常看 fb 後端版 11/11 18:08
37F:→ newhandfun: 樓上,我這兩年每天看都沒覺得那邊有在批判c#,這無 11/11 19:01
38F:→ newhandfun: 關社團 11/11 19:01
39F:推 alihue: 正好戰得火熱的時候是兩年前 戰完版主還會小酸一下別家 11/11 19:16
40F:→ alihue: 說自己不是針對軟軟喔 直到最近看到有人訝異 mssql 為何 11/11 19:17
41F:→ alihue: 市佔極高,我才知道那的同溫層有多厚 11/11 19:18
42F:→ newhandfun: 那看來是我沒跟到,可惜不能拉板凳看戲(?)論同溫層 11/11 22:24
43F:→ newhandfun: 的話,如果只待一個地方就一定會進入,無論何處都一 11/11 22:25
44F:→ newhandfun: 樣,這裡不也是四大資工碩刷題至上嗎? 11/11 22:25
45F:→ newhandfun: 待久了會覺得每個人都進faang拿年薪百萬呢! 11/11 22:26