函数定义和调用
------------恢复内容开始------------
定义函数
在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参数只能写在最
后,前面用...标识,从运行结果可知,传入的参数先绑定a、b,多余的参数以数组形式交给变量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可以拿到xiaoming的birth属性。
function getAge() {
var y = new Date.getFullYear();
return y -this.birth;
}
var xiaoming = {
name ='小明',
birth:1990,
age = getAge
}
xiaoming.age();// 25, 正常结果
getAge()// NaN
JS 装饰器..
.....
------------恢复内容结束------------

浙公网安备 33010602011771号