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.

  • 相关阅读:
    MDI窗体容器
    记事本制作、流的初步引用、窗口的三种显示类型
    ListVies控件的应用
    变量常量
    百度地图自定义离线地图
    通过配置文件方式修改 axios 请求地址
    百度地图坐标偏差
    Vue 全局指令限制输入框输入
    axios post请求发送数组
    WebSocket
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5094088.html
Copyright © 2011-2022 走看看