diff --git a/docs/guide/extend/extend-android.md b/docs/guide/extend/extend-android.md
index 0e23cbb..d77614a 100644
--- a/docs/guide/extend/extend-android.md
+++ b/docs/guide/extend/extend-android.md
@@ -8,6 +8,29 @@
 
 <!-- toc -->
 
+## JSEnv Extend
+
+
+### Api
+
+```
+
+Map<String, Object> options = new HashMap();
+options.set("testVlaue","hello");
+//.... 
+instance.render(pagename, template,options);
+
+```
+
+### usage
+
+```
+var value = weex.config.testValue;
+
+console.log(value);
+```
+
+
 ## Module extend
 
 1. Customize modules class must extend from WXModule.
diff --git a/docs/guide/extend/extend-ios.md b/docs/guide/extend/extend-ios.md
index 36b3319..97bddee 100644
--- a/docs/guide/extend/extend-ios.md
+++ b/docs/guide/extend/extend-ios.md
@@ -4,6 +4,28 @@
 
 In this section we will talk about how to extend Weex on iOS using Objective-C. For Swift, please refer [Extend using Swift](./extend-ios-with-swift.html)
 
+
+
+## JSEnv Extend
+
+
+### Api
+
+```
+NSDictionary *options = @{@"testVlaue":@"hello"};
+
+[_instance renderWithURL:url options:options data:nil];
+
+```
+
+### usage
+
+```
+var value = weex.config.testValue;
+
+console.log(value);
+```
+
 ## Extend module
 
 To extend your custom weex modules in iOS, you must make your class conform to `WXModuleProtocol` protocol, and then exports your method to javaScript using macro `WX_EXPORT_METHOD`, finally register your module with your class and a self-define module name.
diff --git a/docs/zh/guide/extend/extend-android.md b/docs/zh/guide/extend/extend-android.md
index 2df13be..3da9f6b 100644
--- a/docs/zh/guide/extend/extend-android.md
+++ b/docs/zh/guide/extend/extend-android.md
@@ -14,6 +14,30 @@
 - Module 扩展 非 UI 的特定功能。例如 sendHttp、openURL 等。
 - Component 扩展 实现特别功能的 Native 控件。例如：RichTextview，RefreshListview 等。
 - Adapter 扩展 Weex 对一些基础功能实现了统一的接口，可实现这些接口来定制自己的业务。例如：图片下载等。
+- JS全局变量自定义扩展
+
+
+## JSEnv 扩展
+
+
+### 接口
+
+```
+
+Map<String, Object> options = new HashMap();
+options.set("testVlaue","hello");
+//.... 
+instance.render(pagename, template,options);
+
+```
+
+### 使用
+
+```
+var value = weex.config.testValue;
+
+console.log(value);
+```
 
 
 ## Module 扩展
diff --git a/docs/zh/guide/extend/extend-ios.md b/docs/zh/guide/extend/extend-ios.md
index 341b54d..c2c71a6 100644
--- a/docs/zh/guide/extend/extend-ios.md
+++ b/docs/zh/guide/extend/extend-ios.md
@@ -3,6 +3,26 @@
 
 在这篇文档里，我们使用 Objective-C 来扩展 Weex 功能，如果想使用 Swift，可以参考 [使用 Swift 扩展](./extend-ios-with-swift.html)。
 
+## JSEnv 扩展
+
+
+### 接口
+
+```
+NSDictionary *options = @{@"testVlaue":@"hello"};
+
+[_instance renderWithURL:url options:options data:nil];
+
+```
+
+### 使用
+
+```
+var value = weex.config.testValue;
+
+console.log(value);
+```
+
 ## 自定义 module
 自定义 module，需要让自己的 class 遵循 `WXModuleProtocol` 这个protocol，通过 `WX_EXPORT_METHOD` 这个宏暴露出需要透出到 `JavaScript` 调用的方法，再向 WeexSDK 注册 module，就可以完成一个简单 module 的自定义。
 
