【发布时间】:2015-07-18 13:53:57
【问题描述】:
我遇到了一种非常奇怪的行为,甚至无法说出应该归咎于哪个包裹。
我的设置:带有 JSXTransformer 和 jsx! 插件的 RequireJS 项目
我有一个这样的 es6 类:
define([
'react'
], function(
React
) {
class MyComponent extends React.Component {
myMethod() {
otherObject.someMethod()._privateProp; // Yes, we need this accessing and have no influence on it
}
}
return MyComponent;
});
运行 r.js 后生成的包中的转译输出为:
define('jsx!project/components/InputOutput',[
'react'
], function(
React
) {
var ____Class8=React.Component;for(var ____Class8____Key in ____Class8){if(____Class8.hasOwnProperty(____Class8____Key)){MyComponent[____Class8____Key]=____Class8[____Class8____Key];}}var ____SuperProtoOf____Class8=____Class8===null?null:____Class8.prototype;MyComponent.prototype=Object.create(____SuperProtoOf____Class8);MyComponent.prototype.constructor=MyComponent;MyComponent.__superConstructor__=____Class8;function MyComponent(){"use strict";if(____Class8!==null){____Class8.apply(this,arguments);}}
MyComponent.prototype.myMethod=function() {"use strict";
otherObject.someMethod().$MyComponent_privateProp;
};
return MyComponent;
});
注意otherObject.someMethod().$MyComponent_privateProp; 是如何写在那里的。这显然会中断,因为它不是 MyComponent 实例的属性。
【问题讨论】:
标签: javascript reactjs requirejs ecmascript-6 react-jsx