函数定义和调用

------------恢复内容开始------------

定义函数

 

在JavaScript中,定义函数的方式如下:

function abs(x) {
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

  function是一个函数定义

  abs 是函数的名称

  (x)括号内列出函数的参数,多个参数以      , 分隔

  {  }    是函数体,

  

abs(10); // 返回10
abs(-9); // 返回9

    

  arguments

关键字 arguments  它在函数内部起作用,并且永远指向当前函数的调用,,传入的所有参数。

            arguments 类似于Array 但它不是一个Array

function foo(x) {
    console.log('x = ' + x); // 10
    for (var i=0; i<arguments.length; i++) {
        console.log('arg ' + i + ' = ' + arguments[i]); // 10, 20, 30
    }
}
foo(10, 20, 30);

  

  

rest参数

 

function foo(a, b, ...rest) {
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}

foo(1, 2, 3, 4, 5);
// 结果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]

foo(1);
// 结果:
// a = 1
// b = undefined
// Array []

  

rest参数只能写在最

后,前面用...标识,从运行结果可知,传入的参数先绑定ab,多余的参数以数组形式交给变量rest,所以,不再需要arguments我们就获取了全部参数。

如果传入的参数连正常定义的参数都没填满,也不要紧,rest参数会接收一个空数组(注意不是undefined

  

 

方法

  

var xiaoming = {
     name = '小明'
       birth: 1990
}

  如果我们给xiaoming绑定一个函数,就可以做更多的事情。比如,写个age()方法,返回xiaoming的年龄:

 

 

    var xiaoming = {
         name :'小明',
         birth:1990,
         age:function() {
               var = new Date().getFullFear();
                return y -this.birth
}

}

xiaoming.age; // function xiaoming.age()
xiaoming.age(); // 今年调用是25,明年调用就变成26了

  

   

绑定到对象上的函数称为方法,和普通函数也没啥区别,但是它在内部使用了一个this关键字,这个东东是什么?

在一个方法内部,this是一个特殊变量,它始终指向当前对象,也就是xiaoming这个变量。所以,this.birth可以拿到xiaomingbirth属性。

 

  

    function getAge() {
         var y = new Date.getFullYear();

          return y -this.birth;
          
}        
   
   var xiaoming = {
          name ='小明',
          birth:1990,
           age = getAge
    
}

    xiaoming.age();// 25, 正常结果
    getAge()// NaN

  

JS 装饰器..

.....

 

 

 

 

 

------------恢复内容结束------------

posted @ 2022-04-12 14:05  风的街道  阅读(88)  评论(0)    收藏  举报