帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:JAVA  Javascript对象  tiny  Javascript  fail-fast  fast  lazy  对象  
A TINY, fail-fast, lazy, "naked", simple immutable data structure library.

  • 源代码名称:immu
  • 源代码网址:http://www.github.com/scottcorgan/immu
  • immu源代码文档
  • immu源代码下载
  • Git URL:
    git://www.github.com/scottcorgan/immu.git
  • Git Clone代码到本地:
    git clone http://www.github.com/scottcorgan/immu
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/scottcorgan/immu
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • immu NPM ModuleNPM download countBuild Status

    emu

    一个小的,失败的快速,懒惰,简单的不变。

    • TINY gzipped gzipped gzipped gzipped gzipped gzipped 。
    • 如果你尝试更改属性,我的意思是,你将得到通知。
    • By懒惰,我指的是,它并不评估属性的可变性,直到它绝对必须要。
    • 所谓的裸,我的意思是它们像常规的对象和数组。
    • 简单的,我指的是它不会增加任何额外的特性到你的代码。

    什么是Immu目标

    Immu旨在解决 2个问题:

    • 不可变的Javascript对象( 数组是Javascript中的对象) 。
    • 尝试变异对象时出现快速错误,出现详细异常。

    Immu不尝试向数组添加功能,而是引入复杂的数据结构,如映射 Map Set Set,或者提供一个带有游标和存储的完整解决方案。 Immu是提供不可以变对象的最简单的解决方案,同时维护这些对象( 包括 array 方法)的本机 API 。

    其他类似但做得更多的库:

    在实现和解决问题的过程中,这些库中的每个库都是非常出色的:

    :为什么使用不可变数据

    Bug 发生,因为开发人员编写它们。 这只是在你和你的代码爆炸之间增加了一个层。 不可以变数据不能保证帮助你避免所有 Bug,但是可以以帮助你更容易地理解你的状态 !

    安装

    npm install immu --save

    用法

    'use strict';let immu =require('immu');let user = {
     name:'Scott',
     age:31,
     location:'somewhere'};let immutableUser =immu(user);try {
     immutableUser.name='Unchangeable';
    }catch (e) {
     console.error(e.message); // Cannot change value of an immutable property}console.log(immutableUser.name) // Scott// Get the raw object backconsole.log(immutableUser.toJS()); // {name: 'Scott', age: 31, location: 'somewhere'}let list =immu([1, 2, 3, 4]);let newList = list
    . map(item=> item +1)
    . filter(item=> item %2===0);console.log(Array.isArray(list)) // true

    运行测试

    git clone https://github.com/scottcorgan/immu.git && cd immu
    npm install
    npm test


    文章标签:JAVA  Javascript  对象  fast  tiny  lazy  immutable  Javascript对象  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语