js怎么调用函数-js的函数使用

    Python编程 wuya 112次浏览 已收录 0个评论

    函数使用

    • 定义函数的关键字:function
    • 函数的调用可以出现在函数之前
    • 函数名不要重复,虽然不会报错,但是后者会覆盖前者
    • 函数可以像普通变量一样使用(赋值、打印)
    • 函数就是一种特殊的对象,可以使用new Function()进行创建
    • 函数的参数:可以有默认值、可以不传、可以多传
    • 自调用函数(封闭空间):本质就是一个立即执行的匿名函数
      var c = (function (a, b) {
          return a+b
      })(3, 5)
      
      console.log(c)

      作用:既可以让特定的内容作为一个整体执行,又不失功能的灵活性。

    • 闭包使用(其实就是具有执行环境的函数)
      function wai()
      {
          var i = 0
          function nei()
          {
              i++
              console.log('内部函数', i)
          }
          // 函数作为返回值返回
          return nei
      }   
      
      // f1就是闭包
      var f1 = wai()
      f1()
      f1()
      
      var f2 = wai()
      f2()
      f2()
    • 变量作用域
      • 块级作用域:JS中没有块级作用域
      • 全局作用域:定义在函数外面的变量拥有全局作用域
      • 局部作用域:定义在函数内部的变量只能在函数内部使用
      • 示例:
      if (true) {
          var a = 250
      }
      // 代码块内部定义的变量外部可以使用,说明没有块级作用域
      a = 20
      console.log(a)
      
      // 全局变量:拥有全局的作用域
      var name = 'dahua'
      
      function test()
      {
          // 可以使用
          console.log(name)
          // 可以更改
          name = 'ergou'
      }   
      
      test()
      console.log(name)
      
      function demo()
      {
          // 局部变量:只能在函数内部使用
          var age = 18
          // 不使用var定义的变量默认是全局变量,即使是在函数内部执行
          // 强烈不建议这样使用
          xxx = 250
      }
      
      // 局部变量不能再函数外部使用
      // console.log(age)
      demo()
      console.log(xxx)

    函数调用

    • 执行环境:函数的执行都是有上下文的(环境)
      var name = 'dahua'
      
      console.log(name)
      console.log(window.name)
          
      function func1()
      {
          // this表示当前函数执行的环境对象,类似于python中的self
          console.log(this.name)
      }
      
      func1()
      // 函数的执行默认都是在window对象下
      window.func1()
    • 指定环境:通过call|apply方法执行函数可以指定执行环境
      function func2(a, b)
      {
          console.log(this.name)
          console.log(a, b)
      }
      
      // func2(3, 5)
      // 参数1:给函数的执行传递的环境(对象),也就是函数中的this指向
      // 其他参数:就是传递给函数的参数
      func2.call({name: 'ergou'}, 3, 5)
      
      // 参数1:给函数的执行传递的环境(对象),也就是函数中的this指向
      // 参数2:传递给函数的数组参数,与call类型,只是类型不同
      func2.apply({name: 'xiaowang'}, [5, 8])
    • 绑定环境:通过bind方法先绑定函数的执行环境,然后再调用就不用关心执行环境了
      // 绑定执行环境:bind函数会生成一个新的函数,无论何时执行环境都是绑定的这个
      // 类似于Python中的偏函数
      var func3 = func2.bind({name: 'xiaofang'})
      func3(2, 4)
      
      // 向文档中写入内容
      // document.write('Hello world!')
      
      var docwrite = document.write
      // docwrite('Hello world!')
      docwrite.call(document, 'Hello world!')
      
      // 先绑定环境,然后执行
      var docwrite_bind = document.write.bind(document)
      docwrite_bind('你好,世界!')

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明js怎么调用函数-js的函数使用
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址