一、定义在函数内部的方法
问题:
无法调用函数内部的方法
解决:
'use strict';
var xiaoming = {
name: '小明',
birth: 1990,
age: function () {
var that = this; // 在方法内部一开始就捕获this
function getAgeFromBirth() {
var y = new Date().getFullYear();
return y - that.birth; // 用that而不是this
}
return getAgeFromBirth();
}
};
xiaoming.age(); // 25
用var that = this;
,你就可以放心地在方法内部定义其他函数,而不是把所有语句都堆到一个方法中。
二、demo01.js:1 Uncaught ReferenceError: math is not defined
问题:
'use strict';
function add(x, y, f) {
return f(x) + f(y);
}
var x = add(-5,6,math.abs());
alert(x);
上述代码报错math is not defined
解决:
1、调用 Math 函数不应该使用 math
2、f 是一个函数,所以应该为
var x = add(-5,6,Math.abs);
三、map/reduce的用法与介绍
利用map()计算x平方
'use strict';
function pow(x) {
return x * x;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]
console.log(results);
利用reduce()求和:
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25