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.

  • 相关阅读:
    centos8 docker podman冲突问题技术就是要不断折腾 时刻踩坑
    systemd upstart sysvinit
    warden创建容器的过程
    Linux彩色输出
    cloudfoundry warden安装和配置
    The Architecture of Open Source Applications: Audacity
    The Architecture of Open Source Applications: Asterisk
    [转]查看dd的拷贝进度
    The Architecture of Open Source Applications Berkeley DB
    libcurl的段错误
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5094088.html
Copyright © 2011-2022 走看看