现在,如果我操这个模特 她只是漂白了她的混蛋 而我的 T 恤上也有漂白剂 我感觉自己像个混蛋 2018 年。如果你和我一样,你的头脑会时不时带你去坎耶永恒的“巴勃罗的生活”中那些光彩夺目的台词。作为一名程序员,这句 if 语句结构的机器般的合理性让我觉得是纯粹的天才。显而易见的问题是:我们能否将这节经文的逻辑结论转化为 Javascript 脚本?当然,我们可以。 // 让我们从定义我们宇宙的本体开始。 const BLEACH_TRANSFERENCE_RATIO = 0.5 class TShirt { constructor() { // 默认情况下,T 恤是干净的。这。污渍 = [] } addStain(stain) { 这个。污点.push(污点)} } 类人{ 构造函数(名称,职业,服装){ 这个。名称 = 命名这个。占领=占领这个。衣服=衣服这个。 isFucking = null 这个。 isBeingFuckedBy = null } get tShirt() { 返回这个。服装.find((piece) =>piece instanceof TShirt) } fuck(person) { // 更新混蛋和混蛋的状态。这。 isFucking = 人人。 isBeingFuckedBy = this // 根据业务逻辑进行混蛋内容的传输。 const isFuckingModel = person instanceof Model const isWearingTShirt = Boolean(this.tShirt) const sheJustBleachedHerAsshole = person. assholeContent.includes( 'bleach') if (isFuckingModel && isWearingTShirt && sheJustBleachedHerAsshole) { // 注意:每次你操模型时,你的 T 恤上都不会漂白。请注意,这行是“我的 T 恤上有漂白剂”,而不是“然后我的 T 恤上有漂白剂”。暗示结果不可预测。 if ( Math.random() >= BLEACH_TRANSFERENCE_RATIO) { this.tShirt.addStain( 'bleach') } } } } class Rapper extends Person { 构造函数(名字,衣服) { 超级(名字,'说唱歌手',衣服) } 得到Feel() { if ( this.tShirt.stains.includes( 'bleach')) { return 'like an asshole' } else { return 'ok' } } } class Model extends Person { constructor() { // 默认情况下,模特是无名和裸体的(根据 Kanye 的说法)。 super(null, 'model', []) 这个。 assholeContent = [] }bladeAsshole() { if (! this.assholeContent.includes('bleach')) { this. assholeContent.push('bleach') } } } // 表演时间! const kanye = new Rapper( 'Kanye', [ new TShirt()]) const model = new Model() model.bleachAsshole() console.log(kanye.feeling) // 'ok' kanye.fuck(model) console. log(kanye.feeling) // '像个混蛋'