1
我正在做一個簡單的擴展名並希望覆蓋頁面上的javascript函數。對於我來說JavaScript太複雜太理解了。這是代碼的一部分:覆蓋嵌套的javascript函數
}), define("components/Payout", ["react", "game-logic/clib", "game-logic/stateLib"], function(e, t, n) {
var r = e.DOM;
return e.createClass({
displayName: "Payout",
mixins: [e.addons.PureRenderMixin],
propTypes: {
engine: e.PropTypes.object.isRequired
},
getInitialState: function() {
return {
payout: 0
}
},
componentDidMount: function() {
window.requestAnimationFrame(this.draw)
},
draw: function() {
if (this.isMounted()) {
var e = t.calcGamePayout(t.getElapsedTimeWithLag(this.props.engine));
e ? this.setState({
payout: e * n.currentPlay(this.props.engine).bet
}) : this.setState({
payout: null
}), window.requestAnimationFrame(this.draw)
}
},
render: function() {
var e = n.currentPlay(this.props.engine).bet < 1e4 ? 2 : 0;
return r.span({
id: "payout"
}, t.formatSatoshis(this.state.payout, e))
}
})
}),
我想'劫持'的功能是「渲染」功能。我將如何從外部的JS文件中解脫出來?
我想要的是用調整的東西來替換該函數的內容。
您首先需要覆蓋'define'(或者混淆了這裏使用的模塊加載器的內部暴露內容)。然後你就可以訪問'.prototype.render'屬性並劫持它。 – Bergi