今天在网上看到一条关于面向对象的很形象的题目,决定转过来分享一下。

小贤是一条可爱的小狗(Dog),它的叫声很好听(wow),每次看到主人的时候就会乖乖叫一声(yelp)。

小芒和小贤一样,原来也是一条可爱的小狗,可是突然有一天疯了(MadDog),一看到人就会每隔半秒叫一声(wow)地不停叫唤(yelp)。

请根据描述,按示例的形式用代码来实现(提示关键字: 继承,原型,setInterval)。

正确答案:

<script language=”JavaScript” type=”text/javascript”>
    window.onload = function(){
        function Dog(name){this.name = name;}
        Dog.prototype = {
            constructor : Dog,
            wow: function(){
                alert(‘wow’);
            },
            yelp: function(){
                return this.wow();
            }
        }
        function CrazyDog(name){this.name = name;}
        CrazyDog.prototype = new Dog();
        CrazyDog.prototype.madYelp = function(){
            var _self = this;
            setInterval(function(){
                return _self.yelp();
            }, 2000);
        }
        var xiaoXian = new Dog(“xiaoXian”);
        var xiaoXianBtn = document.getElementById(“xiaoXianBtn”);
        xiaoXianBtn.onclick = function(){xiaoXian.yelp();}
        var xiaoMang = new CrazyDog(“xiaoMang”);
        var xiaoMangBtn = document.getElementById(“xiaoMangBtn”);
        xiaoMangBtn.onclick = function(){xiaoMang.madYelp();}
    }
</script>
© 2012 Hedgehog Suffusion theme by Sayontan Sinha