JavaScript——方法的定义和调用

JavaScript——方法的定义和调用

方法的定义和调用

把函数放到对象里就变成了方法(一个对象里只有属性和方法)

var shenming={
    
    
        //属性,用逗号隔开
        name:'神明',
        birth:2000,
        //方法 把函数写在对象里面就是方法
        age:function(){
    
    //函数绑定在对象shenming上,可以做很多事情,比如得到对象的年龄
         //返回当前的年份
         var now= new Date().getFullYear();
         return now-this.birth;
        }
        }

调用

//方法的调用
shenming.age()
//属性的调用
shenming.name

拓展:this指的是什么

把上面的代码拆开(函数写到对象外面)

 function getAge(){
    
    
         var now= new Date().getFullYear();
         return now-this.birth;
        }

        var shenming={
    
    
        name:'神明',
        birth:2000,        
        age:getAge
        }

      
         

结果:

  • 如果调用shenming.age()可以得出年龄
  • 如果直接调用getAge(),则结果为NaN

原因:因为this始终默认指向的是当前对象,当直接使用函数getAge()时,this指向的是全局对象window,而window没有birth这个属性,所以调用失败

apply方法

apply可以指定this的指向

function getAge(){
    
    
         var now= new Date().getFullYear();
         return now-this.birth;
        }
        var shenming={
    
            
        name:'神明',
        birth:2000,       
        age:getAge
        }
         var taoxian={
    
            
        name:'桃仙',
        birth:1999,       
        age:getAge
        }
        var x=getAge.apply(shenming, []);//通过apply方法,将this指向shenming对象,参数赋值为空参
console.log(x)
//20

猜你喜欢

转载自blog.csdn.net/wpc2018/article/details/111410014
今日推荐