网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月11日漏签0天
javascript吧 关注:269,149贴子:906,503
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 19回复贴,共1页
<<返回javascript吧
>0< 加载中...

〔感慨〕一转身物是人非

  • 只看楼主
  • 收藏

  • 回复
  • crazygyl
  • var
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
去年还在贴吧里面求罩。记得有个一直找不到工作的JS老大,翻翻首页的帖子发现老大身影已经不在,不知道找到工作没有。
过了一年再看JS真是让人感慨,JS到底是一门什么样的语言?要是只拿它当成浏览器内嵌语言,真是太可惜。JS中有很多十分先进的东西,看起来十分先进的框架,核心都在这个Prototype上面了。ECMAScript开宗明义的讲了这个东西,我认为,Prototype就是Object级别的共享机制,这个我是类比于操作系统的线程之间共享(fd,memory,等等)、进程之间的共享(pipe,FIFO,消息队列,shm等等)说的。Object级别的共享,就是Prototype。
JS几乎所有的内存实体都是Object,Object之间的共享内容作为通信,这种编程的好处和C语言C++是不同的,节约了很多的内存,很多的C/C++的程序经常把内存拷贝来拷贝去,程序员还乐此不疲,要是操作指针经常造成内存泄漏,用现成Template对程序员的要求又太高。同时这种机制可能存在的一个问题就是对同步的支持会麻烦……
这些东西就是最近想的,想完不写总觉不爽。写完~


  • hzwzjwy
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

也可以不当浏览器内嵌语言,比如node啊。
prototype这东西反正我是不太喜欢。
ECMAScript快要把class弄进来了。


2026-02-11 19:21:20
广告
不感兴趣
开通SVIP免广告
  • _sheepy_
  • Number
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
恕大部分不能认同。
原型是一种继承机制而非共享机制,后者可以参考各种物件导向模式。
充其量,原型主要用於共享逻辑而不是共享数据。而用物件共享逻辑,说穿了就是继承。
继承机制有多种。原型是一类。但最普及的是物件类。这是有原因的。
最大的原因之一是类物件的变化范围(可能状态)明确,直接导致易开发、省内存、高效能。
易开发:例如错字,如果我想打 obj.name = 'Foo' 错打成 obj.nane, 固定类在编辑阶段就能报错, JS 却能跑到程序出 bug。固定类也更易进行静态分析和型态分析。
省记忆: 徒劳地复制数据是编程技术的问题,JS 也照样发生 - 而且常常发生。好的程序 - 包括 C 程序 - 不会不必要地复制。
排除人的因素,原型比类多耗用很多记忆体。原型继承的物件_每一个都是独特的_,每一个物件的**每一个属性都要连同属性名字和属性特性一起记著**。这些东西很易比实际数据耗用更多记忆体。
而固定类的物件结构是固定的,名字和特性在组译的时候已知,能轻易共享甚至排除掉,也_不用提防物件的属性特性会突然改变_。
高效能: 承上所述,原型继承的物件每一个都是独特的,原型链也能随时改变。
类物件可以给每一个类组译一个方法表,直接指向实际的方法不论中间有多少继承,因为组译时已经能找出所有覆载。
原型不可以,原型的覆载是动态的,可以随时增减。属性的情况也一样。JS 确实不慢,但远不至於能跟类基语言比效能。
如果你听说过 JS 跑得比原生快,恐怕写的人需要是王牌级编程。
(而王牌级编程应该能写出比那个原生更快的东西。我就写过汇编。实际放到 windows 跑的。)
JS 好在那儿呢?为甚麼我不加 SQL 吧不加 CSS 吧不加 HTML5 吧不加 .Net 吧不加 PHP 吧要来 JS 吧呢?
JS 最大 - 也几乎是唯一 - 的优势是跨平台。为甚麼能跨平台?因为浏览器。
去掉浏览器,JS 立刻要跟 Java, .Net, PHP, Python, 甚至 Ruby, TypeScript, CoffeeScript 等竞争。
怎比?
据开源源码统计,实用语言中 JS 注译的咒骂率最高。这不是没有原因的。


  • 荧光小草
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主你在说啥子呦~话说你是哪只


  • 荧光小草
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
js也会内存泄露哦~楼主


  • lxy_lixiaoyan
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@_sheepy_ @hzwzjwy
关于lz说的,js的速度快基本是拿内存占用换来的。
比如v8底层的hidden class、inline cache,甚至parseInt都会做缓存。
不过现在js(特指v8下的js)算是解释型语言里最快的了基本,
至少比lua、python等快。
关于sheepy说的错字,typescript或者好的ide可以避免一部分。
而你说的跨平台,其实ie6下js跟chrome下js的兼容性就很疼了。
而且js的各种历史遗留问题也很多,比如正则对零宽断言、原子组、递归匹配的支持。
要说跨平台我倒是更推荐haxe之类的。
(虽说转成js后也不可能支持js本身不支持的某些东西比如上述正则相关就是了)
而且现在js的快也仅仅体现在v8里,其他浏览器中js的速度还是慢。
另外说一句,js顺着原型链(__proto__)查找也会耗时的。
另外关于es6的class,即使es6不死,等到浏览器实现也得很长时间了。
而且到时候v8的优化能不能跟上都不确定。(@次碳酸钴 的意见)


  • lxy_lixiaoyan
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@_sheepy_ class/module什么的估计也就是语法糖之类的,但是proxy不一样。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 19回复贴,共1页
<<返回javascript吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示