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
}
更多建议: