util.md
ngui/util
version()
获取Ngui版本号字符串
- @ret {
String}
fatal(err)
抛出致命异常
hashCode(string)
获取字符串的哈希代码值
hash(string)
获取字符串的哈希值,与hashCode()的区别在于,这个方法会将哈希代码转换为字符串
id()
获取自增id每次调用都会将这个id加1并返回
runScript(source,name[,sandbox])
编译运行一段javascript代码并返回运行结果,与eval函数类似,但这个方法可以指定一个名称与一个运行上下文对像
如果要执行Ngui js or jsx 代码需先使用 util.transformJs() or util.transformJsx() 进行转换
名称在调试代码或程序发生异常时非常有用
如果不传入这个沙盒sandbox上下文默认使用global对像
- @arg
source{String} javascript源代码字符串 - @arg
name{String} 必需要指定这个名称 - @arg
[sandbox]{Object} - @ret {
Object} 返回执行结果
transformJsx(source,name)
转换Ngui jsx代码为普通的可运行的js代码
转换失败会抛出异常,成功则返回新的代码
transformJs(source,name)
转换Ngui js代码为普通的可运行的js代码
转换失败会抛出异常,成功则返回新的代码
noop()
空操作,调用后什么也不会做
extend(obj, extd)
把extd是的属性扩展到obj对像上
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}