Ftr v0.7.0 Documentation
Table of Contents
-
ftr/util
- version()
- hashCode(string)
- hash(string)
- id()
- runScript(source,name[,sandbox])
- nextTick(cb)
- transformJsx(source,name)
- transformJs(source,name)
- noop()
- extendObject(obj, extd)
- assign(obj, ...extd)
- extend(obj, ...extd)
- update(obj, extd)
- err(err)
- throw(err[,cb])
- cb([cb])
- isDefaultThrow(func)
- get(name[,that])
- set(name,value[,that])
- del(name[,that])
- random([start,[end]])
- fixRandom(chance[,...chances])
- clone(obj)
- wrap(obj)
- extendClass(cls, extd)
- equalsClass(baseclass,subclass)
- select(default,value)
- filter(obj,filters[,non])
- options
- dev
- config
- timezone
ftr/util
#
version() #
获取Ftr
版本号字符串
- @ret {
String
}
hashCode(string) #
获取字符串的哈希代码值
hash(string) #
获取字符串的哈希值,与hashCode()
的区别在于,这个方法会将哈希代码转换为字符串
id() #
获取自增id
每次调用都会将这个id
加1
并返回
runScript(source,name[,sandbox]) #
编译运行一段javascript代码并返回运行结果,与eval
函数类似,但这个方法可以指定一个名称与一个运行上下文对像
如果要执行Ftr js
or jsx
代码需先使用 util.transformJs()
or util.transformJsx()
进行转换
名称在调试代码或程序发生异常时非常有用
如果不传入这个沙盒sandbox
上下文默认使用global
对像
- @arg
source
{String
} javascript源代码字符串 - @arg
name
{String
} 必需要指定这个名称 - @arg
[sandbox]
{Object
} - @ret {
Object
} 返回执行结果
nextTick(cb) #
transformJsx(source,name) #
转换Ftr jsx
代码为普通的可运行的js
代码
转换失败会抛出异常,成功则返回新的代码
transformJs(source,name) #
转换Ftr js
代码为普通的可运行的js
代码
转换失败会抛出异常,成功则返回新的代码
noop() #
空操作,调用后什么也不会做
extendObject(obj, extd) #
递归extd
对像属性并扩展到obj
对像上
assign(obj, ...extd) #
把extd
是的属性扩展到obj
对像上
extend(obj, ...extd) #
把extd
是的属性扩展到obj
对像上,assign相同,但这个函数能扩展属性访问器
update(obj, extd) #
把extd
是的属性更新到obj
对像上
会忽略obj
对像上不存在的属性或类型不相同的属性
err(err) #
创建一个Error
异常对像,可以通过异常字符串创建也可通过Object
对像创建
如果传入参数已经是一个Error
对像,不做任何处理立即返回
Example:
var e = util.err('Err')
var e2 = util.err({message:'Err'})
var e3 = util.err(e);
throw e;
throw(err[,cb]) #
抛出一个异常,如果传入cb
会抛出一个回调异常
cb([cb]) #
返回回调,不传入cb
会返回一个空函数,如果传入了cb
参数会立即返回并不会判断其类型
isDefaultThrow(func) #
测试回调函数的异常处理函数是否为默认
Example:
// Prints: true
console.log(util.isDefaultThrow(function(){ }));
// Prints: false
console.log(util.isDefaultThrow(function(){ }.catch(e=>{ }));
get(name[,that]) #
通过点记名称获取对像属性
set(name,value[,that]) #
通过点记名称设置属性值,并返回被更改的对像
del(name[,that]) #
通过点记名称删除对像属性
Example:
var that = { a:{ b: { c: 100 } } };
// Prints: 100
console.log(util.get('a.b.c', that))
// Prints:
// {
// c: 100,
// c1: 200
// }
// {
// c: 100,
// c1: 200
// }
console.log(util.set('a.b.c1', 200, that))
console.log(that.a.b);
// Prints:
// {
// c: 100
// }
util.del('a.b.c1', that)
console.log(that.a.b);
random([start,[end]]) #
获取在start
到end
之间的随机数
fixRandom(chance[,...chances]) #
通过概率随机获取从0
到传入概率数量arguments.length
的随机数
传入的概率之和不能为0
Example:
// Prints: 3 5 9
console.log(util.random(0, 10))
console.log(util.random(0, 10))
console.log(util.random(0, 10))
// Prints 0 3 2
console.log(util.fixRandom(10, 20, 30, 40))
console.log(util.fixRandom(10, 20, 30, 40))
console.log(util.fixRandom(10, 20, 30, 40))
clone(obj) #
深度克隆obj
对像
wrap(obj) #
包裹obj
对像与Object.create()
功能相同
extendClass(cls, extd) #
扩展Class
Example:
class A { test() { } }
class B { test2() { } }
util.extendClass(B, A)
util.extendClass(B, { test3: function() { } })
equalsClass(baseclass,subclass) #
测试两个subclass
是否为baseclass
的子类或相同
select(default,value) #
选取值,如果value
的类型与default
相同选择value
否则选择default
filter(obj,filters[,non]) #
通过名称列表过滤obj
对像属性,并返回过滤后的新Object
non=true
表示反选
Example:
// Prints:
//{
// a: "a",
// c: "c"
//}
//{
// b: "b",
// d: "d"
//}
var obj = { a:'a',b:'b',c:'c', d:'d' };
console.log(util.filter(obj, ['a', 'c'])
console.log(util.filter(obj, ['a', 'c'], true)
- {
Array
}
options #
解析后的启动参数Object
- {
Object
}
dev #
是否为开发状态
- {
bool
}
config #
获取配置文件值
- {
Object
}
timezone #
获取当前时区
- {
int
}