輔助函數
阿新 • • 發佈:2017-08-20
display 利用 typeof ner promise 對象 rom bject throw
1 /** 2 * obj 是否promise 3 * 利用promise.then存在且為function 4 */ 5 6 function isPromise(obj) { 7 return ‘function‘ == typeof obj.then; 8 } 9 10 /** 11 * obj是否Generator 12 * 利用Generator的next 和 throw 兩屬性為Fuction的特點加以判斷 13 */ 14 15 function isGenerator(obj) { 16 return ‘function‘ == typeof obj.next && ‘function‘ == typeof obj.throw; 17 } 18 19 /** 20 * 是否Generator方法 21 * 利用constructor的name和displayName屬性。 22 * @example 23 * var a = {} 24 * a.constructor === Object 25 * a.constructor.name // "Object" 26 */ 27 28 function isGeneratorFunction(obj) { 29 var constructor = obj.constructor; 30 if (!constructor) return false; 31 if (‘GeneratorFunction‘ === constructor.name || ‘GeneratorFunction‘ === constructor.displayName) return true; 32 return isGenerator(constructor.prototype); 33 } 34 35 /** 36 * 判斷是否幹凈對象 37 * 利用constructor 屬性。 38 * @example 39 * Object.constructor === Object 40 */ 41 42 function isObject(val) { 43 return Object == val.constructor; 44 }
輔助函數