资讯专栏INFORMATION COLUMN

一个由“大头儿子带小头儿子吃饭”引发的血案

forrest23 / 2573人阅读

摘要:在群里讨论,然后得出了这几种写法,感觉是层层递进,想了想,最后选择发布成文章大头儿子小头爸爸叫去吃饭大头儿子小头爸爸叫去吃饭大头儿子小头爸爸叫去吃饭吃完了背小头儿子回去正在牵着的手正在吃给所有对象扩展一个继承的方法继承爸爸要继承人的功能正在

在群里讨论JavaScript,然后得出了这几种写法,感觉是层层递进,想了想,最后选择发布成文章

({
    baby : "大头儿子",
    dady : "小头爸爸",
    run : function() {
        console.log(this.dady+ this.callbaby() + this.eat());
    },
    callbaby : function() {
        return "叫"+this.baby+"去";
    },
    eat : function() {
        return "吃饭";
    },
}).run();


function GoFood() {
    this.baby = "大头儿子";
    this.dady = "小头爸爸";
};

GoFood.prototype.run = function() {
        console.log(this.dady+ this.callbaby() + this.eat());
    };
GoFood.prototype.callbaby = function() {
        return "叫"+this.baby+"去";
    };
GoFood.prototype.eat = function() {
        return "吃饭";
    };

var GoFood1 = new GoFood();
GoFood1.run();

var eatObj = {
    baby : "大头儿子",
    dady : "小头爸爸",
    run : function(callback) {
        callback = (typeof callback == "function" ) ? callback : function() {};
        console.log(this.dady+ this.callbaby() + this.eat()+callback());
    },
    callbaby : function() {
        return "叫"+this.baby+"去";
    },
    eat : function() {
        return "吃饭";
    },
}

var eatObj1 = Object.create(eatObj);
eatObj1.run(function() {
    return ",吃完了背小头儿子回去";
});


function Person(name){
this.name=name;
}
Person.prototype={
 getHand:function(person){
 console.log(this.name+"正在牵着"+person.name+"的手");
 },
  eat:function(rice){
  console.log(this.name+"正在吃"+rice.name+"....");
 }
}

function Rice(name){
 this.name=name;
}
//***************给所有对象扩展一个继承的方法(extends继承)**********
Object.prototype.extends=function(func){  
    for(var p in func.prototype){
    this.prototype[p]=func.prototype[p]; 
    }

}
//father 
function Father(name){
 this.name=name;
}
Father.extends(Person);  //爸爸要继承人的功能
Father.prototype.carry=function(person){
    console.log(this.name+"正在背着"+person.name+"......");
    }

//小孩
function Children(name){
  this.name=name;
}
Children.extends(Person);//小孩继承人的功能

var x=new Father("小头爸爸");
var d=new Children("大头儿子");
x.getHand(d);
var  p1=new Rice("水饺");
var p2=new Rice("炒粉");
x.eat(p1);
d.eat(p2);
x.carry(d);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79133.html

相关文章

  • 增量部署class文件引发血案

    摘要:背景项目中通过远程调用服务框架调用了许多其它的服务其中有一个服务需要升级其升级不是版本上的升级而是整个服务重新取了一个名字使用的也是全新的包但是调用的方法没有改变因此在升级时只是在调用服务类中修改了调用地址和调用返回实体由改为该中返回该调用 背景 项目中通过远程调用服务框架调用了许多其它的服务,其中有一个服务wx/subscribe/contract/CircleService 需要升...

    lolomaco 评论0 收藏0
  • 在PHP应用程序开发中不正当使用mail()函数引发血案

    摘要:在我们向厂商提交漏洞,发布了相关的漏洞分析文章后,由于内联函数导致的类似安全问题在其他的应用程序中陆续曝出。浅析的函数自带了一个内联函数用于在应用程序中发送电子邮件。 前言 在我们 挖掘PHP应用程序漏洞 的过程中,我们向著名的Webmail服务提供商 Roundcube 提交了一个远程命令执行漏洞( CVE-2016-9920 )。该漏洞允许攻击者通过利用Roundcube接口发送一...

    Galence 评论0 收藏0
  • 记一次Content-Length引发血案

    摘要:除非使用了分块编码,否则首部就是带有实体主体的报文必须使用的。 背景 新项目上线, 发现一个奇怪的BUG, 请求接口有很小的概率返回400 Bad Request,拿到日志记录的请求的参数于POSTMAN中测试请求接口, 发现能够正常响应. 排查过程 首先服务器能够正常响应400 Bad Request, 排除接口故障问题. 对比日志过程中发现 { hello:world ...

    thekingisalwaysluc 评论0 收藏0
  • 一道JS面试题引发血案

    摘要:项目组长给我看了一道面试别人的面试题。打铁趁热,再来一道题来加深下理解。作者以乐之名本文原创,有不当的地方欢迎指出。 showImg(https://segmentfault.com/img/bVbur0z?w=600&h=400); 刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时。BI项目组长给我看了一道面试别人的JS面试题。 虽然答对了,但把理由说错了,照样不及格。 ...

    fantix 评论0 收藏0
  • for update引发血案

    摘要:微信公众号后端进阶,专注后端技术分享框架分布式中间件服务治理等等。 微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车! 公司的某些业务用到了数据库的悲观锁 for update,但有些同事没有把 for update 放在 Spring 事务中执行,在并发场景下发生了严重的线程阻...

    IntMain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<