• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 网页制作 > JavaScript >

stream.js :一个新的JavaScript数据结构(4)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

  很酷,不是吗?我没说大话,stream比数组的功能更强大。现在,请容忍我几分钟,让我来多介绍一点关于stream的事情。你可以使用 new Stream() 来创建一个空的stream,用 new Stream( head, functionReturningTail ) 来创建一个非空的stream。对于这个非空的stream,你传入的第一个参数成为这个stream的头元素,而第二个参数是一个函数,它返回stream的尾部(一个包含有余下所有元素的stream),很可能是一个空的stream。困惑吗?让我们来看一个例子:

  1. var s = new Stream( 10, function () {   
  2.     return new Stream();   
  3. } );   
  4. // the head of the s stream is 10; the tail of the s stream is the empty stream   
  5. s.print(); // prints 10   
  6. var t = new Stream( 10, function () {   
  7.     return new Stream( 20, function () {   
  8.         return new Stream( 30, function () {   
  9.             return new Stream();   
  10.         } );   
  11.     } );   
  12. } );   
  13. // the head of the t stream is 10; its tail has a head which is 20 and a tail which   
  14. // has a head which is 30 and a tail which is the empty stream.   
  15. t.print(); // prints 10, 20, 30 

  很酷,不是吗?我没说大话,stream比数组的功能更强大。现在,请容忍我几分钟,让我来多介绍一点关于stream的事情。你可以使用 new Stream() 来创建一个空的stream,用 new Stream( head, functionReturningTail ) 来创建一个非空的stream。对于这个非空的stream,你传入的第一个参数成为这个stream的头元素,而第二个参数是一个函数,它返回stream的尾部(一个包含有余下所有元素的stream),很可能是一个空的stream。困惑吗?让我们来看一个例子:

  1. function ones() {   
  2.     return new Stream(   
  3.         // the first element of the stream of ones is 1...   
  4.         1,   
  5.         // and the rest of the elements of this stream are given by calling the function ones() (this same function!)   
  6.         ones   
  7.     );   
  8. }   
  9.    
  10. var s = ones();      // now s contains 1, 1, 1, 1, ...   
  11. s.take( 3 ).print(); // prints 1, 1, 1 

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ