作者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/cn.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