1.函数的语法规范
var f = new Function('a','b','console.log(a+b)');
f(1,2)
// 花括号里面的是参数,第三个是函数体
// 必须是字符串的格式
2.这种方式不推荐使用,效率低,只是通过这个方法可以得出所有函数都是
function 的一个实例对象(注意是大写的 Function 的一个实例对象),
所以
// 检测 是否为函数 返回为真则函数也属于对象
console.log(f instanceof Object);
函数也属于对象 .
3.所有函数的调用方式
(1).普通函数
function fn() {
console.log('人生的巅峰');
};
调用方法 : fn() 或者 fn.call()
(2).对象
var o = {
sayHi: function() {
console.log('人生的巅峰');
};
};
调用方法 :
o.sayHi();
(3).构造函数
function Star() {};
调用方法 : new Star();
(4). 绑定事件
btn.onclick = function() {};
调用方式 : 点击了按钮就可以调用这个函数
(5).定时器函数
setInterval(function () {}, 1000);
调用方式 : 这个函数是定时器是自动一秒钟调用一次
(6).立即执行函数
(function() {
console.log('人生的巅峰');
})();
调用方式 : 立即执行函数是自动调用
以上几种函数的this指向
3.改变this的指向 三种方法
(1).call()
主要实现继承 传入值没有要求
(2).apply()
传入值必须是数组(用数组号包起来)
但输出值还是原来的的类型 主要应用与数组有关
(3).bind()
不会自己调用函数 传入值没什么要求 返回值会生成一个新的值(拷贝)
是在开发中用的最多的
//总结//
高阶函数
1.高阶函数是对其他函数进行操作的函数 它接受函数作为参数书 或将
函数作为返回值输出