You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
沙箱为了能够在es5的环境下提供更加高级的语法支持,将许多原生的构造类进行了封装。例如Array类型,无论是new Array还是字面量形式let t = [1,2,3],在沙箱中的实现都是绑定了一个构造类:MArray。所以,如果将一个沙箱内部的数组对象传给外部,是无法当做数组来使用的,arr.entries()方法返回的也是一个模拟的MIterable。另外,外面的对象传入沙箱内部,怎么办?需要转换么?将原生的数组转换为MArray,将Iterable转换为MIaterable?
问题背景
沙箱为了能够在es5的环境下提供更加高级的语法支持,将许多原生的构造类进行了封装。例如Array类型,无论是
new Array
还是字面量形式let t = [1,2,3]
,在沙箱中的实现都是绑定了一个构造类:MArray
。所以,如果将一个沙箱内部的数组对象传给外部,是无法当做数组来使用的,arr.entries()
方法返回的也是一个模拟的MIterable
。另外,外面的对象传入沙箱内部,怎么办?需要转换么?将原生的数组转换为MArray
,将Iterable转换为MIaterable
?举一个例子,如果沙箱内部执行后返回个React.Component。在外部使用这个组件,什么情况会产生问题呢?
<SomeComp />
实际是调用React.createElement(SomeComponent)
,应该不会产生问题;任何对组件的操作,方法都是沙箱内部实现的,不用和外部有何通信,所以不会产生问题。如果沙箱向外部返回一个方法,该方法执行返回一个数组,那么就会出现问题。
怎么解决这类问题呢?
The text was updated successfully, but these errors were encountered: