阅读 130

天辰的救赎(JS)第四章(组合元素)

阅读须知

这是一篇小说风格的关于JS的文章,网上已经有大量的优秀技术文章和书籍,写系列的主要目的只是想尝试用不同的方式来分享一些关于JS的知识,或者可以说只是单纯地为了好玩,文笔不怎么好,大家看着好玩就行,不定时更新。

image

从外表看,胖虎的这个道具并没有什么特备之处,只是一块晶莹剔透,薄如蝉翼的水晶片,想起胖虎说的只要把这个道具贴在眼睛上就能使用,天辰便揉了揉右边的眼睛,半信半疑,小心翼翼地把它贴在了眼球上面,贴上后,天辰先是感觉到一丝冰凉的融化的感觉,仿佛有什么东西进入到了眼球里边,接着一个灰色的雷达状的图案出现了在了天辰的眼前,散发着一阵阵微弱的光芒,好像在扫描着什么,同时,天辰的脑袋里突然多出了一些神秘信息。

image

天辰仔细看了看,发现这些内容好像是关于这个道具的描述,这些描述都是由一些基础元素组成,类似字符串或者布尔元素,但是以一种天辰未见过的方式组合起来,不过根据一些字符串元素的描述,天辰大概知道了这个道具是胖虎从贪玩联盟带出来的,叫做规则探测器,而它有个特殊作用,就是能看穿一些基础道具的规则,这也应该就是胖虎说的能看穿乌云面具的原因了。

“胖虎的规则探测器? 这家伙也真是有点自恋,做个道具都要带上自己的名字。”

天辰心里嘀咕着,同时试着看了看周围的小草和石头。

image

image

“居然有这么神奇的道具!”天辰环顾了下四周,发现无论是小草还是石头,在探测器下都各自显示出了一些信息,天辰又看了看远处的巨大的封印,想试着看能不能发现什么秘密,结果发现在探测器面前只能看见一圈一圈的能量在封印中流动,更细节的东西仿佛被一层迷雾给挡住了,什么也看不清楚。

“嗯~~,看来应该是封印的规则太复杂了,胖虎的这个探测器探测不出来,那还是接着去找乌云吧。”天辰心里想着。

天辰重新回到了山洞,发现乌云并不在山洞里,应该是回到自己的房间去了,天辰走到乌云门前,拍了拍乌云门上的铃铛。

image

“乌云,乌云,我有事想找你,你在里面没有?喂,乌云。”

天辰对着乌云的房间喊道。

“天辰你叫那么大声干什么,有病啊?我刚回来打算休息一会儿,就听见你在这里喊。”

几个呼吸的时间,乌云不耐烦的声音便传了出来,带着一些小的脚步声。

“现在就等乌云来开门了,希望胖虎说的能看穿面具是真的!”天辰心里突然有点莫名的小激动。

“吱~” 就在这时,房门终于打开了,天辰探出脑袋习惯性的往里面一瞧,而乌云刚准备走出来,两人突然来了个面对面,眼神也正好接触在了一起,乌云脸上依旧带着面具,不过这时,眼前的探测器上几道红光一闪而过,和开始的小草石头一样,乌云面具的属性也显示了出来:

image

“成了!果然也能看到面具的属性,不过胖虎说可以看穿面具,现在怎么还是只能看到一些面具的信息呢?”

虽然探测器探测出了面具的属性,但是依然看不到面具下的乌云什么样子。

“门已经开了,有什么事,赶紧说吧。”

看着天辰什么也不说的就盯着看,乌云只好先开口说道。

“那个。。就是我想问问你一些关于变量的。。 ”

天辰突然也不知道该说啥,只能一边想一边试着继续用探测器检测乌云的面具。

“咦~” 天辰突然注意到了一段文字

{
    // ...
    show: true,
    // ...
}
复制代码

“看起来这段文字像是用来控制面具是否显示的开关,这里有个true的属性,而true是一个代表的布尔元素,如果能换成false的话,是不是乌云的面具就会隐藏了?”天辰正这么想着的时候,一段话出现在了天辰的脑袋里:

“探测出一个可以修改的属性show,目前可以使用探测器在true和false之间进行修改,是否修改?消耗能量:无。”

出乎天辰的意料,探测器主动给出了一些提示。

“探测器不仅能探测属性,居然还能修改?”

天辰选择了把show属性修改为false,只见面具上的true属性闪了几下,便突然变成了false,接着乌云脸上的面具便开始逐渐变透明,最后便完全消失不见了,面具之下,呈现在天辰面前的是一个陌生的有着些许梦幻的面孔。

一双清澈明亮的大眼睛,像火焰一样的眉毛和头发,最神奇的则是乌云的皮肤,像是一片蓝色的梦幻星空,脸颊两侧各由一些零散的繁星点缀着,似乎看一眼就会被吸引进去,虽然天辰开始也暗自脑补过乌云的外貌,但是真看见时还是被惊艳住了。(剧情需要图片看最顶部图片)

看着天辰依然突然目不转睛地盯着自己看,也不说话,乌云有点纳闷。

“天辰你傻了啊?一直盯着我看做什么,我脸上又没花。”

“乌云,你明明挺好看的,干嘛一直带着个面具?”

“什么叫我明明挺好看,你又没看过我,怎么知道我长什。。。” 突然,乌云好像意识到了什么,伸出手摸了摸下自己的脸,发现面具居然消失了。

“!!!!??? 你这个混蛋!!!天辰!!!你做了什么,为什么我的面具突然自己消失掉了!”乌云很愤怒地说道。

“额,那个我就只是好奇,然后试了下胖虎的道具,没想到还真有用,你别生气啊,我以为只是能看穿面具,我也不知道面具怎么自己就消失了。。”

“我现在不想和你多说话,滚~”

“砰~”

看着天辰的目光还在上下扫来扫去,乌云直接一脚给天辰踢飞了出去,天辰根本反应不过来,直接掉在了远处的地上,乌云马上转身并关上了门。

“我去,这女人也太暴力了,不就是看了下长相嘛,下这么重的手。”

“哈哈哈哈哈,你小子果然去试了下我的探测器,怎么样,挨揍了吧?” 就在这时,胖虎的声音突然传了出来,和刚才一样,胖虎从令牌里跑了出来,站在天辰旁边盯着他笑。

“你还好意思笑,你不是说那道具能看穿面具吗?怎么直接把面具给弄消失了,这下乌云肯定很生我的气了。” 天辰看着胖虎,这家伙果然还是不正经的时间多,正经的时间少。

“我只是说能看穿面具,又没说看穿了面具面具还在,你自己理解错了还怪我,哈哈。”看见 天辰这个样子,胖虎依旧笑得没心没肺。

“靠,你这人平时不会都是这个样子吧?像你这么不正经的人在这世界能混的走?”

“对啊,我就是这样的一个人,不行啊?至于能不能在世界混的走,我这不是还混的好好的嘛,哈哈,什么样的性格,就过什么样的生活,你这个人就是太严肃了,这世界给的限制本来就够多了,你看你这不一来也是困在这救赎之地,完了你还自己给自己添加限制,一点娱乐精神都没有,不累啊?”

“切,你坑人就坑人吧,还找这么冠冕堂皇的理由。”

天辰也是服了胖虎了,坑人就算了,还各种找理由。

“不过照胖虎你这么说,你难道也是以前某一天突然就来到这个世界了?”

“对啊,和你一样,一开始也是在一个救赎之地里边。”

“哦,那既然你在这世界也待了这么久了,你知道这世界是怎么一回事不?知道我们为什么会出现在这里不?”

“这我哪知道具体原因,不过我感觉这世界有点像一个游戏。”

“一个游戏?”

“没错,随着我对这个世界的了解,我发现这世界有时候真的就像一个游戏,有很多像你我一样的玩家,有各种各样的冒险,挑战和机遇,不过虽然如此,这世界同时倒也充满了各种有趣的事物,你得用心去发现它们,如果你足够用心,你就能发现许多别人没注意到的有趣的东西,我胖虎,包括我们联盟,就喜欢去发现和制造有趣的东西。”

“照你这么说,好像也有道理,反正我们都不知道这世界到底是什么样子对吧。”

“是啊,你虽然才来这世界不久,但是也要学会及时行乐,把握机会,试着多做一些有趣的事,就像刚才你刚才虽然被乌云揍了一顿,但你总不想直到离开这地方了,连她什么样都不知道吧?我这都是在帮你,免得你以后后悔,放心,估计过了今晚她就不会怎么生你气了,毕竟她还要负责帮你走出这救赎之地呢。。。不过话说回来,我这道具怎么样?还是有很多用处吧?这个道具你好好留着,以后应该很多时候都用得上。”

“好吧,反正事情都发生了,不过你也不提前悄悄和我商量下,让我一点准备都没有的就被踢飞了。”

“哈哈,那是你自己实力弱,换我这体型,她能踢动我?”胖虎扭了扭他那庞大的身子,不屑地说道。

“。。。是是是,你这块头谁能踢动。。。不过你胖虎出来不会就是为了嘲笑下我吧,应该有什么事想对我说吧?”

“你小子还是挺聪明的,没错,我想着既然探测器也都给你了,那就还是出来接着给你说点关于它的事,既然你已经使用过探测器了,那想必也知道这周围的花花草草和石头都有自己的规则属性吧?。”

“嗯,我看过了,像我们脚下的小草或是石头,在探测器下都会显示出一些各自的属性,里面充满了各种基础元素,不过按照一种特殊的规则组合而成。”

“这是我接下来打算给你说的,你现在知道了各种基础元素,布尔元素,数字元素等,但是,正如你了解到的,它们都只是零散的简单基础元素,充满在这个世界的各个角落,而我们身边的各种物体,却不会这么简单,即使是这株小草,也会有各种特性,它有自己的颜色,自己的描述,还有自己的物语,单独来看,这些好像都是一些基础元素,但是它们现在却按照某种规则,构成了一个整体。”

“哦,也就是说,像身边的小草或者石头,它们内部都是由各种不同的基础元素构成,只不过是以某种特殊方式收集组合起来,从而变成了现在这样?”

“对,它们内部都是一些基础元素。”

“这样啊,我记得变量不是就可以收集元素嘛,干嘛不直接用变量把一堆属性收集起来,非得先组合一下呢?”

“是可以直接用变量收集基础元素,但是这样收集的,也只是一堆零散的基础元素,这样吧,天辰,我们先来试一下,就像你刚才看见的一些关于小草的属性,比如小草的名称,颜色等,按照你说的,我们来试着用变量来收集一下,像下面这样。”

// 用不同变量收集
var name = '不知名的小草';    
var color = '蓝色';
var description = '救赎之地里不知名的蓝色小草,能够很快的生长,暂时不知道有什么作用,但是睡在上面挺舒服。';
var words = '我是一颗小草小草小草~~~';
复制代码

“这样没错对吧?你可以看到,我们使用了4个变量来收集一些关于小草的属性,分别是name,color,description和words,但是,这里我们虽然把一些小草的相关属性都收集起来了,不过如果光看几个变量的话,我们并不知道它们之间有什么关系,比如name可能是关于小草的,而color可能是其他物体比如石头的color,你没办法确定这里的color和name有什么联系。”

“嗯,每个变量都是独立的,单独看的话确实不知道它们之间是有联系的。”

“对,那我们在这基础上进一步,这次我们可以给一组有联系的属性所放的变量取一些类似的名字,比如都加个统一的前缀grass(小草),像这样。”

// 用带统一前缀的不同变量分开收集
var grassName = '不知名的小草';    
var grassColor = '蓝色';
var grassDescription = '救赎之地里不知名的蓝色小草,能够很快的生长,暂时不知道有什么作用,但是睡在上面挺舒服。';
var grassWords = '我是一颗小草小草小草~~~';
复制代码

“好了,这样的话,每个变量都有了一个grass前缀,现在如果我们看见这几个变量在一起,我们可能会猜想他们都是用来描述小草grass的。”

“嗯,这样比刚才的那种方式要好一些了,但我想了下,这样的话我们是不是会需要很多的变量?或者说如果有其他小草的话,我们可能得更换另一个前缀是吧?而且,我们最好还得把它们放在一块儿,如果分散了,我们怎么知道关于某颗小草的变量,到底有多少个呢,比如除了grassName,grassColor,可能还会有其他grassXXXX属性,难道每次都把所有变量检查一遍,看哪些拥有grass前缀嘛?,而且,不管怎么说,它们始终好像还是零散的元素,只不过看起来像是有联系的一堆变量。”

“对啊,你也意识到这个问题了,所以我们还是需要一种更好的方式,来把一堆相关的元素内容组合在一起,让我们知道它们是有关系的,并且也能很方便的找到所有相关的元素,最重要的是,我们希望以一种方式把一些基础元素真正组合成一个整体。”

“那我用探测器看见的就是一种更好的方式嘛?”

“嗯,你用探测器看见的是其中的一种方式,通过这种方式,我们就能够把一堆零散的基础元素,真正组合成一个大的整体。”

“哦,那它们要怎么才能组合在一起?”

“和生成变量时用到的规则一样,这世界也有组合元素的规则,只要你按照规则来,你就能把一堆基础元素组合起来,接下来我就给你说下这种组合规则,就从刚才这株小草开始吧,你现在把探测器开着,我们一起来看看这株小草的内部情况。”

天辰和胖虎都戴上了一个探测器,然后开始一起盯着面前的小草发呆。。。

image

“好了,这是这一株小草的内部情况,你刚才已经看见过了,现在我们依次来看一下,首先你可以看见,整个元素,最外部是由一堆{}的大括号符号包括而成,这对{}符号, 就是这个元素内部和外部的分界处,所有和这个元素相关的属性,都会被放在{}内部。”

// 外部
{
    // 小草的内部
}
复制代码

“嗯,是不是就好像我们的皮肤一样,外面就是这世界,而内部就属于我们自己。”

“和这差不多吧,外部现在我们先不管,我们接着来看{}符号的内部,你可以看见,它内部有许许多多属性,比如name,color等,以及对于这属性的描述,然后你仔细观察一下就会发现,它们都是按照一定的规则排列组合的,我们先单独拿一个name属性来看看。”

{
    name: '不知名的小草',
}
复制代码

“你看,除了最外部的{}符号,这里总共有4部分,首先是name这个属性名称,然后是:符号,:符号告诉我们这个属性的名称已经结束了,接下来是对于该属性的描述或功能了,在这里,我们可以看见name属性的描述是'不知名的小草',是一个字符串元素,这是很合理的,因为开始就说过,字符串可以用来描述这世界,而这里正好用来描述这株小草的name,然后在它之后,是一个,符号,这个符号标记着name属性的结尾,后面的就是它的其他属性了,一样是重复的由这样的4个部分组成。”

“哦,感觉和生成变量时候好像,都有一个名称,一个描述,之间用一定的特殊符号分割开。”

“没错,按照这种规则,一个组合元素内部可以有很多的基础元素组成,就和刚才的小草和大石头一样。”

{
    name: '不知名的小草',
    color: 'blue',
    words: '我是一颗小草小草小草~~~',   
    
    // ... 其他属性
}
复制代码

“也就是说,这种规则就类似胶水一样,把所有相关的基础元素都收集到一块,从而生成一个更大的组合元素对吧,比如这颗小草,本来它内部都是一些零散的基础元素,但是被组合后,就变成了现在这样。”

“对,就是这样,那现在你知道了这种方式,你就先试着用这种方式创造一些新的东西出来吧。”

“我也可以试着创造?”

“当然,你先试试再说吧。”

“哦,好。”

天辰按照胖虎所说的规则,开始创造了起来:

image

image

image

“好了,还是很简单,完全不费吹灰之力嘛。” 天辰看着手上的3颗颜色各异的小草,嘴上说着虽然轻松,但心里还是暗自惊讶,按照胖虎所说的规则,居然真创造出了这世界的生物,虽然只是几颗小草。

“我来看看,不错,挺厉害啊。” 胖虎凑了过来,看了看然后夸奖道。

“哈哈,是挺神奇也挺好玩的,对了,那这种组合元素和那些基础元素有什么区别嘛?我们可以用变量来收集基础元素,那么变量也能收集这种组合元素不?”

“你自己不是知道怎么生成变量嘛?你自己试着把基础元素换成组合元素不就行了,看看能不能行。”

“哦,也对,那我试试看。

天辰按照开始的变量生成规则,开始制造变量,不过这次,他把右边的基础元素换成了刚才生成的组合元素。

var grass1 = {
    name: '天辰的小草1号',
    color: '白色',
    description: '天辰按照胖虎的规则创造的第一颗小草,除了好看好像没什么别的用途。',
    words: '我居然是被一个新手给创造出来的,好没面子啊~!',    
};
复制代码

等天辰按照刻画完对应的规则后,开始还是之前熟悉的一幕,面前的虚空中飘出了一个上面印着grass1的变量,不过接下来的过程则变得有些不一样了,在用基础元素生成变量时,基础元素会直接被变量包裹住,进到变量的体内,而这时的组合元素小草则不一样,天辰发现从它体内飘出了一个半透明的,看着像分身一样的东西,然后是这个分身进入到了变量体内,而它自己,还是在原来的地方,并没有进入到变量内部。

“咦,胖虎,这是什么情况? 为什么这个组合元素没有像基础元素一样,被装进变量里呢?”

“想知道为什么啊?因为。。。它不愿意!”

“。。。。。。”

“真的,不信你看你这颗小草,让我来问问它,看它愿意被你装进变量不。”

天辰只见胖虎从怀里掏出了一个奇怪的大喇叭,对着脚边的小草说道:

“嘿,小草,你愿意让我把你放进一个变量吗?”

“靠,你还真问?它就一棵草能知道什么。。。”

看着胖虎还真一本正经的问,天辰有点无语, 然而让天辰没有想到的事,胖虎刚说完,脚下的小草抖了抖,一道声音便从大喇叭传了出来:

“啊,装进变量?不行不行!我这么一颗可爱的小草,要是把我装进变量那个黑屋子里,不如死掉算了,不过。。。如果你真喜欢我的话,我们可以交个朋友,我给你一个我的镜像分身,以后你可以通过它联系我,有什么话也可以对我说。”

“好啊,那你给我一个你的镜像分身吧,以后我们就是好朋友了!”

“好,我这就给你,你以后要好好珍惜它哦,要是弄丢了可能就找不到我了。”

和刚才类似的情况,只见从小草身体内飘出了一个白色的半透明的分身,胖虎接了过去,收进了袖子里,顺便和小草道了个别,然后收回了它的大喇叭,回头对着目瞪口呆的天辰说道:

“看见了吧,别人不愿意直接被你放进变量里,但是可以给你它的镜像分身,也就是你刚才看见的白色半透明的东西,通过它,你就可以联系上它原来的主人,而这个镜像分身,倒是可以被你放进变量里。”

“好吧。。。居然还能这样玩。。。”

“那是,你才来这世界多久,看什么都稀奇。行了,你已经认识了组合元素,知道了利用某些特定规则,我们也能生成新的组合元素,那现在你也算是踏出了认识这世界的一小步了,你看看你周围,你脚下的石头,小草,四周的墙壁,还有那远处的封印,都是由各种各样的基础元素和某些规则组合合成的,甚至你有没有想过,也许包括我们自己,在这个世界上,或许也是以某种特定方式被组合而成的,在我们体内,也是各种各样的基础元素。”

“咦,你胖虎不说还好,你这么一说,我感觉搞不好可能还真是,我说怎么每个来到这世界的人都想不起过去的事,也许我们本来就是被这世界创造出来的,根本就没有之前的记忆。”

“是啊,真是个神秘又充满挑战的世界啊!”

“哈哈,胖虎你喜欢挑战?”

“当然喜欢,有挑战才刺激,你这种小白现在还体会不到完成挑战后的那种成就感。”

“那也是成功后的事啊,不还有很多失败的情况嘛?”

“这不是挺正常的,不会失败的事还能叫挑战?再说,这个对我来说不重要,我刚才都说了,这个世界可能就只是一场游戏,在游戏里,有失败这回事嘛?只有一次又一次的满血复活,而我胖虎每次复活后都会比之前更胖,不对,是更强大。。。”

“好吧,希望我也能每次失败后都满血复活,但是我不想变得你这么胖,哈哈哈。”

“你要真能像我这么胖,也不会被别人一脚就踢飞了。”

“我就算宁愿被人踢飞也不想像你这么胖。。。”

“......”

和大多数时候一样,快乐的时光总是短暂的,在胖虎和天辰聊得正开心时,天色也渐渐变晚了。。。

“好了,天辰,现在天色也挺晚了,那就下次再说吧,你好好整理下今天的内容,我就准备回去休息了。。”

“好,那你先去休息吧,我现在思绪还有点凌乱,我先静一静再说。”

“嗯,对了,你开始让乌云生气了,你待会儿还是去哄哄她,明天你就换她继续给你说接下来的内容,我就先不出来了。”

“我被揍了还要我去哄她啊?”

“这你就不懂了吧,女生就是要多哄,你听我的,照着好听的话一直说就完事了。”

天辰对胖虎有点无语,心里想着弄成这样也是你胖虎害的,完了现在又来说这些,早干嘛去了,但是想着自己也确实有责任,所以天辰还是点了点头。

“好吧好吧,那我待会儿去试试。”

“嗯,那我就先回去休息了。。”

“诶,等一下胖虎。。”

“又有什么事?”

“也没啥事,想给你说声谢谢,谢谢你今天给我说这么多,然后就是你那个大喇叭能不能。。。”

“就这事啊,没事,以后就别这么客气了,先走了。”

“~~唰!”

还是没等天辰说完话,胖虎便和上次一样,变成一道光,回到了令牌里。

“等下,那个大喇叭!能和小草对话的那个大喇叭能不能也给我玩玩!!。。。”

“。。。这胖虎,每次回去都这么着急。。。算了,等下次吧。。。”

看见胖虎消失后,天辰原地躺了下来,一边看着手里的几株小草,一边脑海里回忆着刚才的事。

“一堆基础元素按照一定规则组合起来,就变成了更大更复杂的组合元素,如果按照这个规则,一堆组合元素再组合,又会是什么呢?更大的组合元素?那又应该用什么样的规则来组合呢?还有胖虎的大喇叭到底是什么东西,居然能和小草对话。。。”

未完待续。。。

本章JavaScript内容总结:

我们已经知道了JavaScript的世界中,有一些最基本的基础元素,也叫做原始值(primitive value),比如布尔元素,字符串元素等,这些基础元素是Javascript世界中最基本的物质。

基础元素:

true // 代表真的布尔元素

'不忘初心,方得始终。' // 一段字符串元素组成的句子

520 // 一个不知道什么意思的数字元素

null // 你可以把它看做空元素。

undefined // 你可以这样想,如果一个元素不是其他任何元素,那么它就会是undefined元素!
复制代码

也知道了我们可以利用一种叫做变量的道具收集各种基础元素:

// 把一个字符串放进变量里
var aStringElement = '我是一个到处流浪的字符串元素。。。';

// 把一个数字元素放进变量里
var aNumberElement = 1;

// 把一个布尔元素放进变量里
var aBooleanElement = true;

// 把一个null元素放进变量里
var aNullElement = null;

// 没错,undefined也可以被放进变量里!虽然你通常不会放置它进去。
var aUndefinedElement = undefined;
复制代码

还知道了我们可以利用一些叫做操作符的道具对基础元素进行操作:

// 一个刚上一年级同学说这样的操作没问题!
1 + 1 // 2

// 除了加法,减法自然也不在话下!double kill!
1 - 1 // 0

// 好吧,他居然也学会了九九乘法表! triple kill!
9 * 9 // 81

// 一个叫天辰的字符串和一个叫dreamer的字符串不小心撞在了一个
// + 操作符上,然后变成了天辰dreamer!
'天辰' + 'dreamer' // '天辰dreamer'

// 乌云不小心也撞上了!
'乌云' + 'dreamer' // '乌云dreamer'

// 出于某些未知的意外,最后乌云dreamer和天辰dreamer也撞在了一起。
'天辰dreamer' + '乌云dreamer' // '天辰dreamer乌云dreamer'

// 同样撞上的,还有一个最近在练习分身术的小伙伴。

'胖虎dreamer' + '胖虎dreamer' + '胖虎dreamer' + '胖虎dreamer' +'胖虎dreamer' + '...' // '胖虎dreamer胖虎dreamer胖虎dreamer胖虎dreamer胖虎dreamer...'

// 当然,最重要的是,也请你有空试着亲手体验下其他操作符的效果!

复制代码

当然,光有一堆基础元素还是不够的,Bigger than bigger!我们希望有比基础元素更大,更有趣,能表示更多意义的组合元素,第一个我们了解到的组合元素你已经知道它大概长什么样了:

{
    name: '不知名的小草',
    color: '蓝色',
    description: '救赎之地里不知名的蓝色小草,能够很快的生长,暂时不知道有什么作用,但是睡在上面挺舒服。',
    words: '我是一颗小草小草小草~~~',   
    // ...
}

{
    name: '棕色大石头',
    color: '棕色',
    description: '救赎之地里散落的一块巨大石头,暂时不知道有什么作用,但是异常的坚硬。',
    words: '我是一颗小草...唉,不对,我是一块石头石头石头~~~',
    // ...
}
复制代码

在JavaScript世界中, 这种组合元素有个特别的名称叫做对象(Object), 冒号 左边的name,color这些通常叫做属性名(property name)键名(key), 冒号右边的元素像'棕色大石头'这些通常叫做属性值(property value),当然出现在右边的还会有一种叫做方法(method)的东西,以后我们会遇见它。

你可能会觉得对象(Object)这个名称很奇怪,但是不管它叫什么,希望你能用你自己的方式去理解它,比如,也许在某个世界,它就是一个物体(Object),一株蓝色小草呢?

image

最后,我们提到过,在试着将组合元素放进变量时,它并不会像基础元素那样,让我们直接把它放进去,最后我们能放进变量里面的,会是一个类似它的分身一样的东西,在我们具体了解这种情况之前,试着想一想,如果让你凭感觉给出一个答案,你觉得这里的分身会有什么作用?为什么在对待组合元素时,不直接简单地把它放进变量里面呢?

一些可能有用的小提示

把一只小猫装进一个冰箱和把一头大象装进冰箱,哪个更麻烦?

要是我们还会经常把大象取出来看一下又放进去呢?

或者如果我们要把一堆大象装进冰箱里,我们得需要多少个冰箱?又需要多大的冰箱?冰箱要不要钱?

一些你可能关心的问题

1、为什么这次又又等这么久才更新,年不是早就过完了?

年是过完了。。。主要是最近各种事情比较多比较忙,然后也一直在考虑怎么写比较好,整理了一下大方向剧情、内容和相关资料,还有就是经常感觉内容读着怪怪的所以翻来覆去改了很多遍,不管怎样,以后尽量更新快一些。。。

2、在天辰的世界里,对象(Object)被描绘成了小草,石头这些东西,而且他们还能说话,这样描绘会不会过于勉强了?还有胖虎的大喇叭又是什么情况?

本来就是虚构的世界嘛,所以有时候看起来可能是会有点浮夸和勉强,不过,有时候换个角度看问题也许会更有趣。

有一点我们上面没有提到的是,object的key实际上是一个字符串元素,上面的name,color这些都是字符串,也就是说,下面这几种方式实际是一样的。

{
    name: '蓝色小草',
}

{
    'name': '蓝色小草',
}

{
    "name": '蓝色小草',
}

复制代码

如果我们的字符串是一个合法的变量名的话,我们可以不用写引号,像上面第一种方式一样,反过来也就是说,如果我们加上引号,我们可以给key取任意字符串名称。

好了,那么下面这种情况的一株小草也就很正常了:

{
    name: '蓝色小草',
    '你叫什么名字啊?': '我叫蓝色小草呀!',
    '那小草你现在多大了?': '马上就1岁了!',
    '小草你平时都喜欢做什么啊?': '喜欢和你聊天呀!',
    '嘿,小草,你愿意让我把你放进一个变量吗?' : '啊,装进变量?不行不行!我这么一颗可爱的小草......',
    // ...更多内容
}

复制代码

现在你应该发现了,如果我们能用一种规则,通过小草的属性名,获取到它的属性值,那么就可以和小草对话了,而这种规则。。。

没错!就是胖虎的大喇叭所用的规则。

~~好吧好吧,我算是信了你的邪。。。

(下次再见!)

image

小玩具在线版本:

胖虎的规则探测器

蓝色小草

乌云面具

白色小铃铛(可以发出声音)

棕色大石头(这个也可以)

天辰的小草1号

天辰的小草2号

天辰的小草3号

小草对象Object

关注下面的标签,发现更多相似文章
评论