用javascript来生产一部iPhone8

其实要谈谈javascript的对象链。

唐纳德.川普 当选美国第四十五任总统。当选以后,川普立即给蒂姆.库克打电话
川普(Trump):“我说厨子啊,我是美国总统,我现在命令你把在中国的apple工厂搬回美国,iPhone8就在国内生产,好兑现我对广大蓝领选民的承诺啊”.
库克(Cook):“呵呵,这是一个鹅妹子嘤的建议嗷,but no”.建在中国的工厂是搬不回来了。

开个玩笑算是开场白。经过几天的理解,发现javascript的对象
链居然和现代企业的生产链居然十分的相似。字面都带链啊。这里就借apple的iPhone8的生产来理解js的对象链。可能不是十分贴切。但是在一定程度上能帮你理解相关概念。

要学习js功,必先自宫,如不自宫,必不成功。 如果你带着java,C++,php的对象原理来学习js的对象继承,会撞得满头包,尤其是看到和其他语言一样的关键字时,千万不能拿老概念来套。js自成体系,所以学习js的对象链要理解其自身的特点。我先摆出来。1js中是没有类这个抽象概念的,js中都是对象。2 js对象继承实际发生的是一种“委托关系”。这种委托关系是js的对象链的精华所在。

这个“委托关系”听着耳熟吗?什么?不熟。那么听过OEM么?什么?也没有听过OEM。好吧知道富士康么?什么?没听过?同学火星冬天冷吗?
好吧,OEM就是代工工厂。这流程就是一个公司擅长设计,但是他不生产产品,他委托另一个擅长制造的工厂生产产品。另一个工厂又会把其中一部分生产过程委托 给其他工厂,这个委托关系可以一直持续下去。如果理解js对象继承链的人立刻会知道我说的原理。没有理解也没有关系,下面就借着iPhone8的生产来看看这个委托关系

我们把这个过程稍微简化一下,要不全过程写完我也没有那个能力,写全过程要找郭明池来写。

我把ip8的生产简化为:
1.硬件设计
2.软件设计
3.初试
4. 整机生产
5. 电池生产
6. 屏幕生产
7. 外设生产

下面会用一些伪代码来说明这个问题。js中都是对象,没有类。类都是实体,是在内存中实际存在的。在整个生产中的公司都是对象。现在我们看看这些对象

    //苹果公司对象   
  class Apple {
        init(){  //初始化apple公司
             founder:"Steve Jobs";
             current leader:"Tim Cook";
             Designer:"Ivy";
             Location :"South. CA"
         }
         
         programSoftware(){  //软件制作和设计
             return (" make ios11");
         }

         designHardware(){ //硬件原型设计
            (" make ios11");  
            (" make  protype of ip8");
            ("design cpu of a11 ");
   
      }

         legalGroup(){  //法务部 负责和华为打官司
           ("lawsuit with huawei")
        }               
   }

//这就在javascript里面给apple公司建立了一个对象,整个对象有初始化的属性, 还有三个自己擅长的方法。

话说2007年,乔布斯还在世的时候,他找到富士康公司老板郭台铭说:”我说台铭啊,我想找个工厂生产手机,以前富士康生产的imac不错,这才还是委托你们来生产吧“ 。郭台铭是:好吧。我马上建立富士康苹果手机工厂。为了好理解我加了命名空间,看见了么_。2017年,Apple推出iphone 10周年了,又要开始生产了。

 //FskApple这个对象就是Apple的继承者,他本身是一个对象,并不是实例化出来的
//FskApple和Apple尽管用了extends关键字,但是他们没有从属关系,仅仅是委托关系而已
  FskApple extends Apple (){
       init(){  //fsk的初始化属性
          founder:"郭台铭";
          location:"郑州";            
       }
       
         makeHardware(){ //硬件生产    
           (" make  module ip8");     //生产模具,这是fsk的特长
          (" Assemble ip8");     //组装iphone8,这也是fsk的特长     
 
        }


 }

富士康并不精通屏幕生产,所以富士康有把屏幕的生产委托给了LG公司.LG公司要给苹果生产最新的AMOLED屏幕。这里和实际的委托有出入只是为了好理解. 好么又一个工厂出来了。富士康LG工厂。

   //LG富士康工厂又受fsk的委托生产
     LgFsk extends FskApple (){
      init(){  //LgFsk的初始化属性
         founder:"unknow";
         location:"seoul";            
      }
      
        makeScreen(){ //屏幕   
          (" make circuit");     //生产背板电路
         (" make panel");     //生产面板     

       }


}
 ```

实际的生产的委托关系比这个复杂的多,js的对象链也比这个复杂一点。我在这里把它简化为一条线的委托关系只是为了好理解。

三个对象的`委托链`建成以后,就可以投入生产了。富士康公司要调用ip8的设计方法时,他并不要自己去创建这个方法,因为他不擅长这个方法,他直接利用和苹果公司的委托关系借用苹果公司的设计方法就可以了。 苹果是委托富士康来生产,从整个产业链来说也可以认为是富士康委托苹果公司做了设计工作。苹果不生产,富士康不设计,但是一旦两者产生委托关系以后,两者可以发挥各自的特长,2017年iPhone8就在这个委托链中生产出来了。

现代企业想改变这么一个发挥各自优势的链时多么的不容易,再也找不到更好的方法了。所以库克说苹果工厂再也回不去了。
     
为此我画了一张图,比较丑,凑活着看吧。这里就是三个对象之间的继承关系。我觉得叫连接关系比较好一点。

![screenshot_20.png](http://upload-images.jianshu.io/upload_images/2044710-3d40a51a813a002b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/600)
原理如此,三个对象有继承关系,但是之间并不是从属关系。对象都具有自己擅长的方法,其他对象的方法也不活再费力去做一个独立的副本。lg要设计方法可以找富士康,富士康没有的话又可以找苹果。

我们去掉细节来看,js的对象继承链只是有些关键字借用了传统的面向对象的东西,但是实际上js和java的对象是完全不同的。

###最后再强调一句:javascript中的对象继承链不是对象之间的从属关系,而是一种委托和合作关系。理解这一点后面的学习就好办了。

初学者水平,不知道这个通俗理解是否得体和准确?
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 春节回家爸妈身边近一个月,由于挡不住记忆中那些美食的诱惑,本来就不瘦的身板像鼓风机般的膨胀起来,待春梦醒来,镜子里...
    云儿飘过阅读 895评论 27 31
  • 01自我反省 孔子曰:吾日三省吾身。很多人都会在错误发生时第一反应就是习惯性的把错误的原因推给别人。“不是我,是他...
    兜兜转转z_阅读 174评论 0 2
  • 一直就觉得自己的时间不够用,无论怎么事先制定计划,也都是不能按照计划完成,买好了的书,总是不能如期看完。日复一日,...
    王沐妍阅读 878评论 4 40
  • 克服心魔、重新振作的三大秘诀: 1.放慢思考。深深的体会到快节奏思考带来的焦虑和烦躁,很累,因为脑子一直在想东西,...
    MSXiang阅读 113评论 0 0
  • 心有千千结,脸有千千孔。⊙﹏⊙第一次清理毛孔,痛到飙泪,咬着牙告诉自己这都可以忍了,孰不可忍?心和脸要经历了多少糟...
    月野兔TT阅读 136评论 0 1