创立函数的三种款式

1.function申明的一般函数(命名函数)
2.函数表达式(匿名函数)
3.new Function()

var fn =new Function('参数1','参数2',...,'函数体);

  • Function()外面的参数都是字符串格局
  • 第三种形式执行效率比拟低,也不不便书写,因而较少应用
  • 所有的函数都是Fnction的实例对象
  • 函数也属于对象
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数的定义和调用形式</title></head><body><script>    // 自定义形式 function fn() {    }    // 函数表达式 var fn = function() {    }    // 利用new Function('参数1','参数2','函数体') var f = new Function('a','b','return a+b')    console.log(f(1,2));    console.dir(f);    //用来判断f是否是一个对象 console.log(f instanceof Object)</script></body></html>

不同函数的调用形式

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><button>按钮</button></body><script>    // 函数的调用形式 // 1.一般函数的调用 function fn() {        console.log('hello word')    }    fn()    // 2.对象类的函数调用 var obj = {        say: function () {            return 'hello word' }    }    console.log(obj.say())    // 3.构造函数的调用 function Star(name, age) {        this.name = name;        this.age = age;    }    var star1 = new Star('尧子陌', '18');    console.log(star1.name)    //4.事件函数的调用 var bth = document.querySelector('button');    bth.addEventListener('click', function () {        console.log('事件函数')    })    // 5.定时器函数 setInterval(function () {        console.log('定时器函数')    }, 5000)</script></html>

自执行函数

顾名思义:本人调用的函数
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>自执行函数</title></head><body><script>    (function () {        alert('hello word')    })()</script></body></html>

this的指向问题

函数外部的this指向,当咱们调用的时候才确定
<!DOCTYPE html><html lang="en">    <head>        <meta charset="UTF-8">        <title>函数的this指向</title>    </head>    <body>        <button>按钮</button>    </body>    <script>        // 函数的调用形式        // 1.一般函数的调用        function fn() {            console.log(this) //windows        }        fn()        // 2.对象类的函数调用        var obj = {            say: function() {                console.log(this) //指向o这个对象            }        }        obj.say()        // 3.构造函数的调用        function Star(name, age) {            console.log(this) //构造函数中的this指向的是它的实例化 star            this.name = name;            this.age = age;        }        var star1 = new Star('尧子陌', '18');        //4.事件函数的调用        var bth = document.querySelector('button');        bth.addEventListener('click', function() {            console.log(this) //事件函数中的this 指向的是它的调用者bth按钮        })        // 5.定时器函数        setInterval(function() {            console.log(this) //定时器中的this 指向的是windows        }, 5000)    </script></html>