是为什么 JS 要有原型对象? - V2EX
HeFengzz

是为什么 JS 要有原型对象?

  •  
  •   HeFengzz Mar 15, 2022 1933 views
    This topic created in 1523 days ago, the information mentioned may be changed or developed.
    实例 constructor 构造函数 constructor Object constructor Function constructor null 这样不行吗?
    thinkershare
        1
    thinkershare  
       Mar 15, 2022
    不知道你写的二啥, 后面一段非常奇怪, 这个是 "constructor Object constructor Function constructor null " 什么意思?
    JS 对象当然可以没有原型, 原型只是原来实现继承的. 就是解释器实现的一个魔法属性罢了.
    HeFengzz
        2
    HeFengzz  
    OP
       Mar 15, 2022
    @thinkershare 对不起我问了一个蠢问题,我实际上想知道 js 的继承和 java 的继承的实现有啥区别,JS 有个原型链的图,java 是不是也是一样的
    thinkershare
        3
    thinkershare  
       Mar 15, 2022
    原型继承和基于类的继承有本质的不同. 你将 Javascript 的对象理解为一个字典就好了, 而 Java 这种基于类型的继承是非常复杂的, 需要考虑静态绑定, 动态绑定, 类型对象, 类型对象指针, 同步索引等等. 本质上就是性能问题, Javascript 的继承就是一个从. __prototype__对象上递归向上查找属性(方法+索引器是比较特性的属性)一个设计, 因此在读取上内存可以共享原型链上的数据成员(写入不可以), 而 Java 这种基于类的数据是不共享的, 只有方法代码可以共享.
    obulks
        4
    obulks  
       Mar 22, 2022
    先说为什么要有 prototype 这个属性,此属性是用来 实现基于原型的继承 和 为其他对象提供共享属性,ECMAScript 语言规范的文档明指出了这一点,这是语言本身设计如此;其次他们的继承肯定是不一样的,Java 本身就是完全面向对象的语言,自己有类的概念,可以直接使用类的继承,使用类的各种特性,而 Javascript 语言本身没有类,但可以利用原型和自身语言的特性来实现面向对象,类的继承和原型的继承这两种继承方式,他们之间其实没啥联系,单单说区别的话,直接看各自的实现原理得了
    About     Help     Advertise     Blog     API     FAQ     Solana     2753 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 01:46 PVG 09:46 LAX 18:46 JFK 21:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86