函数的定义和调用
1.1 函数的定义方式
1.函数声明方式function关键字(命名函数)
2.函数表达式
3.new Function() var fn=new function(‘参数1',’参数2‘,’...‘,'函数体')
- Function里面的参数都必须是字符串格式
- 第三种方式执行效率低,不方便书写
- 所有函数都是Function的历史(对象)
- 函数也属于对象
1.2函数的调用方法
//1.对象的方法
var o = {
sayHi: function() {
console.log('人生的巅峰');
}
}
o.sayHi();
//2.构造函数的调用
function Star() {}
new Star();
//3.绑定事件函数
btn.onclick = function() {}; //点击了按钮就可以调用
//4.定时器函数
setInterval(function() {}, 1000); //定时器自动每隔一秒钟调用一次
//5.立即执行函数 立即执行函数是自动调用
(function() {
console.log('人生的巅峰');
})();
//普通函数
function fn() {
console.log('普通函数的this' + this);
}
fn();
2.1this指向问题
var btn = document.querySelector('button');
//1.对象的方法 this指向的是对象o
var o = {
sayHi: function() {
console.log('人生的巅峰' + this); //[object Object]
}
}
o.sayHi();
//2.构造函数的调用 this指向的是实例对象(ldh),原型对象里面的这个this也是指向的ldh这个实例对象
function Star() {
}
Star.prototype.sing = function() {
console.log(this);
}
var ldh = new Star();
ldh.__proto__.sing();
//3.绑定事件函数 this指向触发事件的对象(函数的调用者)
btn.onclick = function() {}; //点击了按钮就可以调用
//4.定时器函数 this指向window
setInterval(function() {
// console.log(this);
}, 1000); //定时器自动每隔一秒钟调用一次
//5.立即执行函数 立即执行函数是自动调用 this指向window
(function() {
console.log('人生的巅峰');
})()
//6/普通函数 this指向window
function fn() {
console.log('普通函数的this' + this); //[Object Window]
}
window.fn();