Namespace: util

M. util

Methods

<static> dsl(obj, members) → {string}

生成将对象的成员导出到当前作用域的代码,该代码可被eval()正确执行, 该函数生成的代码不能在strict模式下运行
Parameters:
Name Type Argument Default Description
obj string <optional>
this
members string <optional>
指定要导入的成员,未指定则导入全部成员,用空格分隔成员名
Returns:
Type
string
Example
var Calculator = {
    add: function(a, b){ return a + b },
    sub: function(a, b){ return a - b }
}

eval(M.util.dsl(Calculator));

add(4, 6);
sub(10, 4);

<static> enumeration(names)

声明一个枚举
Parameters:
Name Type Argument Description
names String <repeatable>
enumeration key
Example
var color = M.$enum("BLUE", "RED", "YELLOW");
color.BLUE
color.RED
color.YELLOW

var color = M.$enum({
 "BLUE": -1,
 "RED": 1
})

<static> fn()

在函数内部调用函数自身, 代替引用auguments.callee

<static> makeMultiTargetFn(fn) → {function}

包装只有两个参数的函数, 包装后会把第二个参数开始的所有参数依次传递给原函数运行
Parameters:
Name Type Description
fn function
Returns:
Type
function

<static> methodize(fn, firstParam, getFirstParam) → {function}

包装纯函数,包装时指定纯函数的第一参数
Parameters:
Name Type Argument Default Description
fn function 纯函数
firstParam Object <optional>
this fn的第一个参数,如果未传递getFirstParam参数
getFirstParam function <optional>
获取fn的第一个参数的函数,调用时将把firstParam传递给它
Returns:
Type
function

<static> overwrite(obj, funcName, overwriter)

重写对象的方法,新方法将调用overwriter并把原方法作为第一个参数传递给它
Parameters:
Name Type Description
obj Object 要重写方法的对象
funcName string 被重写的方法名
overwriter function 真正的覆盖函数
Example
var Jim = {
    sayHi: function(){ return "Hi"}
}

M.util.overwrite(Jim, "sayHi", function(oldFn, name){
    return oldFn.call(this) + ", " + name + "!";
})

Jim.sayHi("Lucy");
=> "Hi, Lucy!"

<static> parseArguNames(fn) → {Array}

获取函数的参数名称
Parameters:
Name Type Description
fn function
Returns:
Type
Array
Example
function Add(number1, number2){}
M.util.parseArguNames(Add);
=> ["number1", "number2"]

<static> parseArray(arrayLikeObj) → {Array}

将类Array对象转换成真正的Array
Parameters:
Name Type Description
arrayLikeObj Object
Returns:
Type
Array

<static> run(fn)

运行指定方法,避免在全局作用域下产生全局变量
Parameters:
Name Type Description
fn function

<static> toObject(value) → {Object}

将值转换成其对应的引用对象
Parameters:
Name Type Description
value string | number | bool
Returns:
Type
Object