
<!-------------------------------common start flag------------------------->
<center>
<div align="center">
  <h1>全局数据操作 -【app-lib-global】</h1>
  <a href="https://img.shields.io/badge/success: https local reason - goback refresh you brower can show badge image now-brightgree" title="click can show badge">
    <img src="https://appbir.github.io/appbir-resource-statics/image/logo.png" height="60" />
  </a>
  <h1>app-lib-global</h1>
  <a href="https://appbir/library">
    <img src="https://img.shields.io/badge/appbir-library-blue"/>
  </a>
  <a href="https://appbir/library/-/web/detail/app-lib-global">
    <img src="https://img.shields.io/badge/npm-v1.0.47-green">
  </a>
  <a href="https://appbir">
    <img src="https://img.shields.io/badge/license-ISC-brightgree"/>
  </a>
<div>
</center>
<!-------------------------------common end flag--------------------------->

<!-------------------------------background start flag--------------------->
# 一、背景介绍

* 全局绑定数据，便于设置一处，不用多处设置
* 便于很多变量不用每个页面都引入

<!-------------------------------background end flag----------------------->

<!-------------------------------functions start flag---------------------->
# 二、功能描述

    * 支持 nodejs 和 js

<!-------------------------------functions end flag------------------------>

<!-------------------------------attention start flag---------------------->
# 三、注意事项

<!-------------------------------attention end flag------------------------>

<!-------------------------------examples start flag----------------------->
# 四、使用案列

<!-------------------------------examples end flag------------------------->

<!-------------------------------todo start flag--------------------------->
# 五、todo 列表

    * nodejs 中 exec 下的全局变量发生变化 不能使用同一个全局变量

<!-------------------------------todo end flag----------------------------->

<!-------------------------------api start flag---------------------------->
# 六、API

## Constants

<dl>
<dt><a href="#ENV">ENV</a></dt>
<dd><p>支持的环境变量</p>
<pre><code>*  NODE: &#39;node&#39;,       // ndoejs 环境
* BROWSER: &#39;browser&#39;, // 浏览器环境
</code></pre>
</dd>
</dl>

## Functions

<dl>
<dt><a href="#getEnv">getEnv()</a> ⇒ <code>string</code></dt>
<dd><p>获取当前环境</p>
</dd>
<dt><a href="#isNodeEnv">isNodeEnv()</a> ⇒ <code>Boolean</code></dt>
<dd><p>判断是否为 nodejs 环境</p>
</dd>
<dt><a href="#isBroswerEnv">isBroswerEnv()</a> ⇒ <code>Boolean</code></dt>
<dd><p>判断是否为浏览器环境</p>
</dd>
<dt><a href="#getGlobal">getGlobal()</a> ⇒ <code>Object</code></dt>
<dd><p>获取当前运行环境的全局变量</p>
<ul>
<li>支持浏览器 window</li>
<li>支持 nodejs gloabl</li>
</ul>
</dd>
<dt><a href="#getbindData">getbindData(namespace)</a> ⇒ <code>any</code></dt>
<dd><p>获取绑定数据</p>
</dd>
<dt><a href="#bindToGlobal">bindToGlobal(namespace, bindData, [isForce])</a> ⇒ <code>any</code></dt>
<dd><p>绑定数据到全局</p>
</dd>
<dt><a href="#isBindToGlobal">isBindToGlobal(namespace, [needbindData])</a> ⇒ <code>boolean</code></dt>
<dd><p>是否也绑定到全局</p>
<ul>
<li>needbindData  绑定对象不为 undefined 时：</li>
<li>比对值相等 或者 json 序列化后相等 则表示已绑定</li>
</ul>
</dd>
</dl>

<a name="ENV"></a>

## ENV

支持的环境变量

 ```
 *  NODE: 'node',       // ndoejs 环境
 *  BROWSER: 'browser', // 浏览器环境
 ```

**Kind**: global constant  
<a name="getEnv"></a>

## getEnv() ⇒ <code>string</code>

获取当前环境

**Kind**: global function  
**Returns**: <code>string</code> - 当前环境常量  
<a name="isNodeEnv"></a>

## isNodeEnv() ⇒ <code>Boolean</code>

判断是否为 nodejs 环境

**Kind**: global function  
**Returns**: <code>Boolean</code> - * true 是 nodejs 环境

* false 不是 nodejs 环境  
<a name="isBroswerEnv"></a>

## isBroswerEnv() ⇒ <code>Boolean</code>

判断是否为浏览器环境

**Kind**: global function  
**Returns**: <code>Boolean</code> - * true 是浏览器环境

* false 不是浏览器环境  
<a name="getGlobal"></a>

## getGlobal() ⇒ <code>Object</code>

获取当前运行环境的全局变量

* 支持浏览器 window
* 支持 nodejs gloabl

**Kind**: global function  
**Returns**: <code>Object</code> - - 获取的全局变量

* window  
* global  
<a name="getbindData"></a>

## getbindData(namespace) ⇒ <code>any</code>

获取绑定数据

**Kind**: global function  
**Returns**: <code>any</code> - 已绑定的值  

| Param | Type | Description |
| --- | --- | --- |
| namespace | <code>string</code> | 命名空间 |

<a name="bindToGlobal"></a>

## bindToGlobal(namespace, bindData, [isForce]) ⇒ <code>any</code>

绑定数据到全局

**Kind**: global function  
**Returns**: <code>any</code> - 全局已绑定的值  

| Param | Type | Default | Description |
| --- | --- | --- | --- |
| namespace | <code>string</code> |  | 命名空间 |
| bindData | <code>any</code> |  | 绑定数据 |
| [isForce] | <code>boolean</code> | <code>false</code> | 是否强制绑定  - 存在当前值时，进行强制绑定 |

<a name="isBindToGlobal"></a>

## isBindToGlobal(namespace, [needbindData]) ⇒ <code>boolean</code>

是否也绑定到全局

* needbindData  绑定对象不为 undefined 时：
* 比对值相等 或者 json 序列化后相等 则表示已绑定

**Kind**: global function  
**Returns**: <code>boolean</code> - 是否绑定

* true  已绑定  
* false 未绑定  

| Param | Type | Default | Description |
| --- | --- | --- | --- |
| namespace | <code>string</code> |  | 命名空间 |
| [needbindData] | <code>Object</code> | <code>&#x27;undefined&#x27;</code> | 绑定对象 |

<!-------------------------------api end flag------------------------------>

<!-------------------------------change logs begin flag--------------------->
# 七、发布日志

* [2023-11-18 08-05-04]-发布获取全局变量
