function newOperator() {
let Constructor = [].shift.apply(arguments)
if (typeof Constructor !== 'function') {
throw 'newOperator function the first param must be a function'
}
// 重点
let newObj = Object.create(Constructor.prototype)
let res = Constructor.apply(newObj, arguments)
const isObject = typeof res === 'object' && res !== null
const isFunction = typeof res === 'function'
return (isObject || isFunction) ? res : newObj
}