• [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.

  • 相关阅读:
    caffe杂
    easyui 扩展layout的方法,支持动态添加删除块
    easyui换主题,并记录在cookie
    $.messager.show扩展:指定位置显示
    easyui 扩展 之 Tree的simpleData加载
    easyui menu 添加hideItem/showItem 方法
    HTML标签及属性大全
    适应各种内核浏览器的透明修过样式
    让IE6支持min-width和max-width的方法
    javascript获取html标记的的绝对定位值
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5094088.html
Copyright © 2020-2023  润新知