美文网首页
JS面向对象相关笔记

JS面向对象相关笔记

作者: UmustHU | 来源:发表于2018-08-30 16:04 被阅读0次
    //新建构造函数
    function obj(){
        this.a = 10;
    }
    obj.prototype.fn = function(txt){
        console.log(txt+'.fn')
     }
    //创建实例对象
    let test = new obj();
    console.log(test.a)
    //返回结果
    10
    
    test.fn('test')
    //返回结果
    test.fn
    
    //另建一个构造函数
    function copy(){
        //修改this指向,继承obj函数上的属性
        obj.call(this);
        //定义只属于copy函数上的属性
        this.b = 20;
    }
    //继承obj函数上的方法
    copy.prototype = new obj();
        
    //新建实例
    let test2 = new copy();
    
    console.log(test2.a)
    //返回结果
    10
    
    console.log(test2.b)
    //返回结果
    20
    
    console.log(test.b)
    //返回结果
    undefined
    
    test2.fn('test2');
    //返回结果
    test2.fn
    
    call,apply的使用
    function obj(){
        console.log(this)
    }
    obj()
    //返回结果
    window
    
    function obj(){
        console.log(this)
    }
    obj.call(1)//修改this指向
    //返回结果
    [Number: 1]
    
    function obj(a,b,c,d){
        console.log(a,b,c,d)
    }
    obj.call(1,2,3,4,5)//call第一个参数之后的参数对应函数中的参数
    //返回结果
    2 3 4 5
    
    function obj(){
        console.log(this)
    }
    obj.apply(1)//修改this指向
    //返回结果
    [Number: 1]
    
    function obj(a,b,c,d){
        console.log(a,b,c,d)
    }
    obj.apply(1,[2,3,4,5])//apply的第二个参数是数组,其他效果和call类似
    //返回结果
    2 3 4 5
    

    相关文章

      网友评论

          本文标题:JS面向对象相关笔记

          本文链接:https://www.haomeiwen.com/subject/uxtdwftx.html