util.md

2018-11-22 19:22 更新

ngui/util

version()

獲取Ngui版本號字符串

fatal(err)

拋出致命異常

hashCode(string)

獲取字符串的哈希代碼值

hash(string)

獲取字符串的哈希值,與hashCode()的區(qū)別在于,這個方法會將哈希代碼轉(zhuǎn)換為字符串

id()

獲取自增id每次調(diào)用都會將這個id1并返回

runScript(source,name[,sandbox])

編譯運行一段javascript代碼并返回運行結(jié)果,與eval函數(shù)類似,但這個方法可以指定一個名稱與一個運行上下文對像

如果要執(zhí)行Ngui js or jsx 代碼需先使用 util.transformJs() or util.transformJsx() 進行轉(zhuǎn)換

名稱在調(diào)試代碼或程序發(fā)生異常時非常有用

如果不傳入這個沙盒sandbox上下文默認(rèn)使用global對像

  • @arg source {String} javascript源代碼字符串
  • @arg name {String} 必需要指定這個名稱
  • @arg [sandbox] {Object}
  • @ret {Object} 返回執(zhí)行結(jié)果

transformJsx(source,name)

轉(zhuǎn)換Ngui jsx代碼為普通的可運行的js代碼

轉(zhuǎn)換失敗會拋出異常,成功則返回新的代碼

transformJs(source,name)

轉(zhuǎn)換Ngui js代碼為普通的可運行的js代碼

轉(zhuǎn)換失敗會拋出異常,成功則返回新的代碼

noop()

空操作,調(diào)用后什么也不會做

extend(obj, extd)

extd是的屬性擴展到obj對像上

update(obj, extd)

extd是的屬性更新到obj對像上

會忽略obj對像上不存在的屬性或類型不相同的屬性

err(err)

創(chuàng)建一個Error異常對像,可以通過異常字符串創(chuàng)建也可通過Object對像創(chuàng)建

如果傳入?yún)?shù)已經(jīng)是一個Error對像,不做任何處理立即返回

Example:

var e = util.err('Err')
var e2 = util.err({message:'Err'})
var e3 = util.err(e);
throw e;

throw(err[,cb])

拋出一個異常,如果傳入cb會拋出一個回調(diào)異常

cb([cb])

返回回調(diào),不傳入cb會返回一個空函數(shù),如果傳入了cb參數(shù)會立即返回并不會判斷其類型

isDefaultThrow(func)

測試回調(diào)函數(shù)的異常處理函數(shù)是否為默認(rèn)

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} 不傳入此參數(shù)默認(rèn)為global

set(name,value[,that])

通過點記名稱設(shè)置屬性值,并返回被更改的對像

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之間的隨機數(shù)

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

fixRandom(chance[,...chances])

通過概率隨機獲取從0到傳入概率數(shù)量arguments.length的隨機數(shù)

傳入的概率之和不能為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

解析后的啟動參數(shù)Object

dev

是否為開發(fā)狀態(tài)

config

獲取配置文件值

timezone

獲取當(dāng)前時區(qū)

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號