Javascript 的原型和原型链相关的基础知识对实际工作有什么帮助吗

2022-05-05 18:05:09 +08:00
 WangLiCha
自学的前端做了些东西,现在比较习惯用更接近传统面向对象语言一点的 Typescript ,之前学 JS 的原型链的时候费了很大的功夫,有点想知道熟练掌握原型链的话对于面试以外能有什么实际的帮助吗?想请教一下各位可能用 JS 更多一点的 V 友们。
5735 次点击
所在节点    程序员
76 条回复
across
2022-05-05 18:11:18 +08:00
这个不懂没资格做团队开发,谁知道你还有多少坑
Austaras
2022-05-05 18:16:53 +08:00
没有
WangLiCha
2022-05-05 18:17:28 +08:00
@across 这个是怎么个说法?如果是团队都使用 Typescript 会好些吗?
Puteulanus
2022-05-05 18:19:03 +08:00
完了,被开除开发籍了

新项目应该不会有需要用到的了吧,维护老项目可能遇上手写的
感觉大概知道是怎么回事就行了,真需要用的时候再去查
面试考这个我更倾向于是八股文
liveoppo
2022-05-05 18:19:43 +08:00
我不是专家,仅供参考:
1 、绝大部分工作都涉及不到原型链;
2 、只要能用其他方法解决问题,就绝对不要用原型链。
seki
2022-05-05 18:22:19 +08:00
如果技术栈都是现代的,基本不用考虑原型链的事情

如果一份工作内容里面要熟练掌握原型链才能做,那么可能是技术栈太陈旧或者太偏门了,或者真的是要钻研到很深入的某些领域的。前者的话建议还是别去了,人生苦短。
misdake
2022-05-05 18:31:22 +08:00
如果要深入底层去做团队或者公司的基础设施,那有可能需要。其他情况下需要的可能性挺低的。
rabbbit
2022-05-05 18:35:13 +08:00
包之类的可能会用.业务用不着,需要继承也是用 class
debuggerx
2022-05-05 18:39:13 +08:00
日常开发毫无用处,谁手写原型链我跟谁急,尤其是上了 TS 之后还用那些奇怪特性,我愿称之为 JS 遗毒。
除了某些老掉牙的项目和库,唯一能想到的情况就是调试某些转译后的 ES5 代码可能会碰到,不过调试 debug 时基本也不太会被这块影响,差不多能看懂就行了。
总的来说,新代码就用新特性写,转译就配好 sourcemap ,找库尽量避免太老的就行
nulIptr
2022-05-05 18:41:21 +08:00
二手前端写 react+ts ,别说原型,连 this 都没用过
libook
2022-05-05 18:51:30 +08:00
做过 7 年 JS 全栈开发,感觉开发中有用,可以为解决问题提供更多思路,但确实用到的频率很低。

原型链不是废弃的特性,反而是核心特性,很多新特性是在原型链基础上设计的,面试的时候能够灵活回答原型链的问题,证明候选人掌握 JS 核心原理,未来解决问题的思路更广。至少我觉得原型链的知识比作用域提升的知识更有实用价值。

JS 中类似的有用但不常用的特性还有不少,比如迭代器(和异步迭代器),很少的情况下需要自己构造迭代器,但在一些场景下自己构造迭代器可以显著降低代码复杂度。
thulof
2022-05-05 19:00:52 +08:00
实现装饰器的时候要用到
SolidZORO
2022-05-05 19:01:12 +08:00
别说原型,你看 react 把 this 都给整没了,就是担心你们用错了。要是真有这样执着原型的公司,你跑还不行吗?
autoxbc
2022-05-05 19:02:25 +08:00
你故意避开什么,最终就会在什么上吃亏,搞技术不该有短板
hamsterbase
2022-05-05 19:14:00 +08:00
如果是 前端框架开发、工具链开发,这个还是挺有用的。

如果是普通业务开发,应该用不上。
shuimugan
2022-05-05 19:21:04 +08:00
有其它语言实际项目经验( PHP 、Python 、Java )经验,用 Node.js + TypeScript 写了 5 年项目(监控告警、爬虫、文件服务、网关、扫描器),目前代码里没出现过一次 prototype ,仅供参考。
golangLover
2022-05-05 19:30:49 +08:00
沒有任何用处。只是通过面试。js 就是多这种没意义的事
KuroNekoFan
2022-05-05 19:31:40 +08:00
基本没有,我都推广 this free
ccyu220
2022-05-05 19:35:26 +08:00
你让我想起了

var that = this

这玩意估计除了引入都 vue2 项目,之后我从来没用过了
thinkershare
2022-05-05 20:14:59 +08:00
最快确定一个人是否完整,系统且认真的学习过 JavaScript, 而不是将其当作玩具语言, 到处复制粘贴代码. 面试如果招聘前端, 如果原型都无法解释清楚, 肯定会被我淘汰, 因为这个玩意非常简单, 这个都搞不明白, 说明要么智力有问题, 要么根本没花心思在自己使用的工具上. 实际项目手动使用 prototype 非常少, 但它总是在起作用. 编写兼容库的时候, 会通过补全原型来模拟一些原生方法.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851000

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX