saber

saber-lang

适合移动端的 语言增强 模块。

Usage

通过edp引入模块:

edp import saber-lang
1
2
3
4
5
6
7
require( [ 'saber-lang' ], function( lang ) {
var targetObj = { x: 1, y: 2 };
var sourceObj = { y: 3, z: 4 };
lang.extend( targetObj, sourceObj );
console.log( targetObj ); // { x: 1, y: 3, z: 4 }
});

API

Base

Base 部分是最基础的语言增强函数,在 require('saber-lang') 时加载。

.extend( target, …source )

对象属性拷贝。

.inherits( subClass, superClass )

为类型构造器建立继承关系。

.curry( fn, …args )

为函数提前绑定前置参数(柯里化)。

.bind( fn, thisArg, …args )

为函数绑定this与前置参数。

Function

Function 类的语言增强函数都需要指定完整路径引入,如 require('saber-lang/function/throttle')

.throttle( fn, wait [, options] )

函数节流 (忽略指定间隔内的函数调用)

.debounce( fn, wait [, immediate] )

函数去抖 (指定间隔内的调用被延迟到下个间隔执行)

aspect.mixin( obj )

为指定对象混入AOP功能

1
obj.before( method, fn[, context] )
`obj` `method` 方法调用前,先调用 `fn` 函数

* `fn` 执行时的 `形` `obj[ method ]` 的一致
* `context` 指定时,`fn` `this` 指向 `context`
* `fn` 返回 `false` 时,`中`后续的所有调用
1
obj.after( method, fn[, context] )
在 `obj` 的 `method` 方法调用后,调用 `fn` 函数

* `fn` 执行时的 `形参` 与 `obj[ method ]` 的一致
* `context` 指定时,`fn` 的 `this` 指向 `context`

,

Saber