阅读(548) (1)

util.md

2017-11-22 18:05:07 更新

ngui/util

version()

获取Ngui版本号字符串

fatal(err)

抛出致命异常

hashCode(string)

获取字符串的哈希代码值

hash(string)

获取字符串的哈希值,与hashCode()的区别在于,这个方法会将哈希代码转换为字符串

id()

获取自增id每次调用都会将这个id1并返回

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])

通过点记名称获取对像属性

  • @arg name {String] 名称
  • @arg [that=global] {Object} 不传入此参数默认为global

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]])

获取在startend之间的随机数

  • @arg [start=0] {int}
  • @arg [end=1e8] {int}
  • @ret {int}

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)

options

解析后的启动参数Object

dev

是否为开发状态

config

获取配置文件值

timezone

获取当前时区