UNPKG

@moomfe/zenjs

Version:

ZenJS 是一个高性能的 JavaScript 工具库。

33 lines (27 loc) 1.03 kB
import defineProperty from '../global/Object/defineProperty'; import assign from '../global/Object/assign'; import isArray from '../global/Array/isArray'; /** * 在一个对象上定义/修改一个新属性 ( 对 Object.defineProperty 的封装 ) * @param {any} obj 要在其上定义属性的对象, 为数组时将对数组内对象都进行属性定义 * @param {String} name 要定义或修改的属性的名称 * @param {any} options 将被定义或修改的属性描述符 * @param {any} options2 将被定义或修改的属性描述符, 会覆盖前一个 options */ export default function define( obj, name, options, options2 ){ if( obj == null ){ return; } // define( [ window, document ], name, options ) if( isArray( obj ) && obj instanceof Array ){ obj.forEach( obj => define( obj, name, options, options2 ) ); return; } name.split(' ').forEach( name => { defineProperty( obj, name, assign( {}, options, options2 ) ); }); }