zoukankan      html  css  js  c++  java
  • [ES6] Function Params

    1. Default Value of function param:

    The function displayTopicsPreview() raises an error on the very first line when called with no arguments. Let's fix that!

    function displayTopicsPreview( topics ){
      var message = "There are currently " + topics.length;
      _displayPreviewMessage(topics, message);
    }
    
    -----------------
    
    function displayTopicsPreview( topics = [] ){
      let message = "There are currently " + topics.length;
      _displayPreviewMessage(topics, message);
    }

    2. Complete the setPageThread() function signature with the missing named parameters. You can check out the body of the function to help discover what options are expected.

    function setPageThread(name,  ){
      let nameElement = _buildNameElement(name);
      let settings = _parseSettings(popular, expires, activeClass);
    
      _updateThreadElement(nameElement, settings);
    }
    
    -------------------
    
    function setPageThread(name,  {popular, expires, activeClass}){
      let nameElement = _buildNameElement(name);
      let settings = _parseSettings(popular, expires, activeClass);
    
      _updateThreadElement(nameElement, settings);
    }

    3. Let's refactor the loadProfiles() function to use named parameters with default values.

    function loadProfiles(userNames = [], options = {}) {
      let profilesClass = options.profilesClass || ".user-profile";
      let reverseSort   = options.reverseSort   || false;
    
      if (reverseSort) {
        userNames = _reverse(userNames);
      }
    
      _loadProfilesToSideBar(userNames, profilesClass);
    }
    
    ------------------------------
    
    function loadProfiles(userNames = [], {profilesClass, reverseSort} = {}) {
      profilesClass = profilesClass || ".user-profile";
      reverseSort   = reverseSort   || false;
    
      if (reverseSort) {
        userNames = _reverse(userNames);
      }
    
      _loadProfilesToSideBar(userNames, profilesClass);
    }
    function setPageThread(name, {popular, expires, activeClass} = {}){
      // ...
    }
    
    setPageThread("ES2015", {
        popular: true
    }); 
    
    //won't cause error

    Important to take away from here is 

    • Instead of giving options = {} in the function param, we give {profileClass, reserseSort} = {}
    • First it is more clear to see what "options" it is
    • Second we assign default param here.

  • 相关阅读:
    centos下使用yum 安装pip
    unity3d Aniso Level 摄像机近地面清楚,远地面模糊
    Unity3D 多平台 预编译 宏定义
    Mecanim的Avater
    Mecanim 学习概述
    Unity物理系统的触发器
    Unity开发 资源准备
    我的Unity学习路线
    贴图在Unity中的设置
    在Unity中为模型使用表情
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5094088.html
Copyright © 2011-2022 走看看