• JavaScript 函数


    JavaScript 函数

    方法&函数

    区别

    1. function 是更通用的概念,如数学、编程
    2. method 是面向对象中的概念,一般与类或对象成对出现

    关系

    1. 对象的属性可以是任意类型
    2. 对象的属性如果是函数类型,它就叫做这个对象的方法
    3. 所以方法的本质还是函数

    函数的调用

    1. fun()
    2. obj.fun()
    3. fun.call()

    函数的属性和方法

    1. name
    2. length
    3. toString

    作用域

    变量不是哪里都可以使用

    全局变量(跨文件)

    var n = 1;
    function fn(){
    	console.log(n);  // 1
    }
    

    局部变量(只能在函数内部访问)

    function fn1(){
    	var n = 2;
    }
    console.log(n);  // Uncaught ReferenceError: number is not defined
    

    函数作用域

    • 函数能独立出一个作用域
    var n = 1;
    function f(){
    	var n = 2;
    	console.log(n); // 在当前作用域进行变量寻找
    }
    f();
    console.log(n);  // 在全局作用域进行变量寻找
    
    • 函数里面可以访问函数外面
    var n = 1;
    var x = function(){
    	console.log(n);
    };
    
    function f(){
    	var n = 2;
    	x();
    }
    f();
    
    • 自调用匿名函数
    !function (){
    	var n = 1;
    	console.log(n);
    };
    
    ~function (){
    	var n = 1;
    	console.log(n);
    };
    
    (function(){
    	var n = 1;
    	console.log(n);
    }());
    
    • 闭包
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>JS Bin</title>
    </head>
    <body>
      <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        <li>ddd</li>
        <li>eee</li>
      </ul>
      <script>
        var items = document.getElementsByTagName('li'),
                i = 0;
        for (i; i < items.length; i++) {
          items[i].onclick = function(e){
            alert(i);
          };
        }
      </script>
    </body>
    </html>
    
    function fn1(){
      var a = 1;
      
      function fn2(){
        a += 1;
        console.log(a);
      }
      
      return fn2; 
    }
    
    var r = fn1();
    r();    // 2
    r();    // 3
    r();    // 4
    
    • 回调(callback)给别人调用的函数
    function trySomething(callback){
      console.log('some thing');
      callback('成功');
    }
    
    trySomething(function(value){
      console.log(value);
    });
    

    setTimeout(callback, time),一段时间后将 callback 放入执行清单
    JavaScript 引擎做完手头的事情才会去看执行清单

    • 同步
    console.log(1);
    console.log(2);
    console.log(3);
    
    • 异步
    console.log(1);
    setTimeout(function(){
      console.log(2);
    },0);
    console.log(3);
    
  • 相关阅读:
    angular.js 头部默认值,不使用json提交数据
    D1-FFmpeg拼接视频
    B23-Carthage的使用
    B22-SVN在iOS开发的使用中遇到的问题
    C4-Cordova在iOS平台的使用
    C2-PhoneGap的环境搭建及iOS项目创建
    C0-PhoneGap之移动开发策略的选择(翻译)
    C1-PhoneGap和Cordova的关系和认识
    B21-iOS 开发的一些tips(下)
    B17-禅与 Objective-C 编程艺术的阅读笔记
  • 原文地址:https://www.cnblogs.com/jimmzy/p/5563724.html
Copyright © 2020-2023  润新知