Livescript 학습

11593 단어 JavaScriptLiveScript
Livescript 학습 - 기능 편
  • ls 를 공부 하 는 과정 에서 function 편 이 매우 중요 하 다 고 느 꼈 기 때문에 회고 학습
  • 을 기록 했다.
  • 잘못된 점 이 있 으 면 바로 잡 아 주세요. 특히 마지막 Partial Application...
  • 참조 링크: LiveScript 홈 페이지 링크
  • 1. 새 함수
    비 폐쇄 함수
    ->                              #    
    (x, y) -> x + y                 #     
    do-return = (x, y) -> x * y     #   doReturn      return x * y
    no-return = (x, y) !-> x * y    #   noReturn           x+2
    function func-name then 2       #          function,           ;      2
    !function func-name then 2      #   !      2
    times = (x, y, z) --> x * y * z #     

    패키지 함수: 일반 이름 함수 앞에서 사용 할 수 있 습 니 다 ~;익명 함수 사용 가능 ~ >;코 리 함수 에 사용 ~ ~ >
    ~function add x, y
      @result = x + y   #   this
       ##    :var this$ = this;
       ## function add(x, y){
       ## return this$.result = x + y;
       ## }
    obj = new
      @x      = 10
      @normal = -> @x #      
      @bound  = ~> @x #     

    2. 함수 호출
    단순 호출
    f!                    #      
    Math.pow x, 3         #    x   3   
    do function f x
      x                   #       f     
    $ \h1 .find \a .text! #      $('h1').find('a').text();
    func do
      a: 1
      b: 2                #         ;     func {x: 1, y: 2}
    3 `add` 4             #   ‘`’   ;    add(3, 4) --            
    g = (a, b) -> f ...   #            -- f.apply(this, arguments);

    빠 른 호출: 고급 함수 에 적용 되 며, map 또는 filter 와 같은 - (obj.) 속 기 는 (it) - > obj [it] 입 니 다.
    map (.length), <[ hello there you ]>
        ##    :map(function(it){ return it.length; }, ['hello', 'there', 'you']);
    
    filter (.length < 4), <[ hello there you ]>
        ##    :filter(function(it){ return it.length < 4; }, ['hello', 'there', 'you']);

    3. 매개 변수 에 대하 여
    일부 특수 매개 변수 호출
    set-person-params = (person, person.age, person.height) -> person #                   
    set-text = (@text) -> this      # @   this
    add = (x = 4, y = 3) -> x + y   #      
    add = (x && 4, y || 3) -> x + y #           x && 4     x  null    4
    set-cords = ({x, y}) -> "#x,#y"
        #        ,          string : x + "," + y;          set-cords = ({x = 1, y = 3} = {}) -> "#x,#y"    = {}          null
    f = (x, ...ys) -> x + ys.1  #       ;          x   ,          ys
    
    -----      -----
    f = (!!x) -> x              #  x   bool 
    g = (+x) -> x               #  x       
    h = (^^x) -> x.prop = 99; x #     x    
    
    -----           it   -----
    f = -> it + 2
    
    -----    '&'  argument    -----
    add-three-numbers = -> &0 + &1 + &2
        ##    :var addThreeNumbers = function(){
                  return arguments[0] + arguments[1] + arguments[2];
                };

    4. 코 리 함수
    커 리 함수: n 매개 변수의 함 수 를 매개 변수 < n 의 함수: - > 로 정의 할 수 있 습 니 다.
    -----         '~~>'   -----
    times = (x, y, z) --> x * y * z
    next-one = times 2 4              #         x = 2,y = 4   
    next-one 5                        #     2 * 4 * 5 = 40
    times 2 2 2                       #         ,   8

    5. let 와 new 에 대하 여
    let 는 (function (a) {...}. call (this, b) 의 줄 임 말 입 니 다.
    let $ = jQuery
        $.isArray []
      ##    :(function($){
      ##           $.isArray([]);
      ##        }.call(this, jQuery));
    
    ------     @-----
    x = let @ = a: 1, b: 2
        @b ^ 3
      ##    :var x = (function(){
      ##          return Math.pow(this.b, 3);
      ##       }.call({ a: 1, b: 2 }));

    new 는 new 새 대상 을 사용 하 는 것 과 같 습 니 다.
    dog = new
    @name = \spot
    @mutt = true
     ##    : var dog = new function(){
     ##           this.name = 'spot';
     ##           this.mutt = true;
     ##        };

    6. 리 턴 함수
    반전 함수;정상: < - 폐쇄: < ~ 코 리 함수: < - 코 리 함수 폐쇄: < ~ ~
    data <-! $.get 'ajaxtest'
    $ '.result' .html data
        ##    :$.get('ajaxtest', function(data){ $('.result').html(data); });
        #     : $.get('ajaxtest')       data,
        #   data              (    )   : $ '.result' .html data

    7. 부분 적용
    부분 적용: 사용 가능apply 함 수 를 대표 합 니 다.
    filter-nums = filter _, [1 to 5]
    filter-nums even  #   [2,4]
                      #        ls        
                      #   :_      apply   ,      even      filter        (    )    ;                                          
    
    -----         ,                  >>          ,       -----
    [1 2 3]
    |> par-func =  _.map _, (* 2) #         [1, 2, 3];   : [2, 4, 6]
    par-func [3 4 5]              #    [3, 4, 5];   : [6, 8, 10]
    par-func                      #       

    좋은 웹페이지 즐겨찾기