JavaScript原型,原型链

js每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加。

也就是说:当生产一个function对象的时候,就有一个原型prototype原型中存储对象共享的属性和方法。

 

原型链:

当你定义一个函数对象的时候,其内部就有这样一个链表关系。声明foo对象,自带了_proto_的属性,而这个属性指向了prototype,从而实现对象的扩展(例如继承等操作)

 

 

例:

 

3.小贤有一条可爱的狗(Dog),它的叫声很好听(wow),每次看到主人的时候就会乖乖叫一声(yelp),从这段描述可以得到以下对象:                                                function Dog(){

 

this.wow = function(){

 

alert(‘wow’);

 

}

 

this.yelp = function(){

 

this.wow();

 

}

 

}

 

小芒和小贤一样原来也有一条可爱的狗,可是突然有一点疯了(MadDog),一看到人就会每隔半秒叫一声(wow)地不停叫唤(yelp)。请根据描述,按示例形式用代码来实现。(继承,原型,setInterval)

 

function Dog(){
    this.wow = function(){
        alert('wow');
    }
    this.yelp = function(){
        this.wow();
    }
}
function MadDog(){
    Dog.call(this);
    var _this = this;
    this.yelp = function(){
        setInterval(function () {
            _this.wow();
        },500);
    }
}

 

 

 

或者

 

function MadDog(){
    Dog.call(this);
    this.yelp = function(){
        setInterval(this.wow,500);
    }
}

 

  1. 输出结果:

 

function fun(){

 

    this.a = 0;

 

    this.b = function(){

 

        alert(this.a);

 

    }

 

}

 

fun.prototype = {

 

    b:function(){

 

        this.a = 20;

 

        alert(this.a);

 

    },

 

    c:function(){

 

        this.a = 30;

 

        alert(this.a)

 

    }

 

}

 

var my_fun = new fun();

 

my_fun.b();

 

my_fun.c();

 

0 30

 

posted @   九毛九  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示