JS函数进阶笔记

函数的定义和调用

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();

 

你可能感兴趣的:(javascript)