From d2751ffdfa35dcd53ad6862b5547f85fd96d7d43 Mon Sep 17 00:00:00 2001
From: neverland <chenjiahan@buaa.edu.cn>
Date: Thu, 13 Dec 2018 16:05:11 +0800
Subject: [PATCH] [improvement] optimize instance assign (#2284)

---
 packages/dialog/index.js         | 15 +++++++--------
 packages/image-preview/index.js  |  5 +----
 packages/mixins/popup/manager.js |  6 ++----
 3 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/packages/dialog/index.js b/packages/dialog/index.js
index 7f9991403..b6e7da4fc 100644
--- a/packages/dialog/index.js
+++ b/packages/dialog/index.js
@@ -27,11 +27,9 @@ const Dialog = options => {
       initInstance();
     }
 
-    Object.assign(instance, {
+    Object.assign(instance, Dialog.currentOptions, options, {
       resolve,
-      reject,
-      ...Dialog.currentOptions,
-      ...options
+      reject
     });
   });
 };
@@ -57,10 +55,11 @@ Dialog.defaultOptions = {
 
 Dialog.alert = Dialog;
 
-Dialog.confirm = options => Dialog({
-  showCancelButton: true,
-  ...options
-});
+Dialog.confirm = options =>
+  Dialog({
+    showCancelButton: true,
+    ...options
+  });
 
 Dialog.close = () => {
   if (instance) {
diff --git a/packages/image-preview/index.js b/packages/image-preview/index.js
index f365600bd..242f54b7f 100644
--- a/packages/image-preview/index.js
+++ b/packages/image-preview/index.js
@@ -33,10 +33,7 @@ const ImagePreview = (images, startPosition = 0) => {
 
   const options = Array.isArray(images) ? { images, startPosition } : images;
 
-  Object.assign(instance, {
-    ...defaultConfig,
-    ...options
-  });
+  Object.assign(instance, defaultConfig, options);
 
   instance.$once('input', show => {
     instance.value = show;
diff --git a/packages/mixins/popup/manager.js b/packages/mixins/popup/manager.js
index 6906d58b4..c35fb78c7 100644
--- a/packages/mixins/popup/manager.js
+++ b/packages/mixins/popup/manager.js
@@ -15,7 +15,7 @@ export default {
       const target = el && el.parentNode ? el.parentNode : document.body;
       context.stack.push({ vm, config, target });
       this.update();
-    };
+    }
   },
 
   close(vm) {
@@ -51,9 +51,7 @@ export default {
       const { target, config } = context.top;
 
       target.appendChild(modal.$el);
-      Object.assign(modal, {
-        ...defaultConfig,
-        ...config,
+      Object.assign(modal, defaultConfig, config, {
         visible: true
       });
     }