Javascript对象构造函数重写以停止调用某些方法
创建一个全局对象,例如“Obj”:Javascript对象构造函数重写以停止调用某些方法,javascript,javascript-objects,javascript-inheritance,Javascript,Javascript Objects,Javascript Inheritance,创建一个全局对象,例如“Obj”: Obj = { gtm : {}, method: function(){console.log("Method is called");} }; 在其他一些地方使用了Obj.method() 我的问题是,我是否可以以任何方式扩展“Obj”的代码,以防止调用Obj.method()。 我不想重写或删除其他地方的代码,因为这将是一个很大的变化。相反,我希望更改原始代码,以便在某些情况下不调用该方法 代理不是一个选项,因为代理也需要我在其他
Obj = {
gtm : {},
method: function(){console.log("Method is called");}
};
在其他一些地方使用了Obj.method()
我的问题是,我是否可以以任何方式扩展“Obj”的代码,以防止调用Obj.method()
。
我不想重写或删除其他地方的代码,因为这将是一个很大的变化。相反,我希望更改原始代码,以便在某些情况下不调用该方法
代理不是一个选项,因为代理也需要我在其他地方更改呼叫。代理在IE 11中不起作用
我可以重写构造函数并实现我想要的吗 谢谢和问候
this
的值或任何参数很重要,则需要传递它们
e、 g
我不完全确定你在找什么,但你说 “相反,我希望更改原始代码,以便在某些情况下不调用该方法。” 那么为什么不这样做呢:
Obj = {
gtm : {},
method: function(){
if (someCondition) return;
// do rest of the method here
}
};
我看不出用这段代码调用方法的任何方法。有没有机会更正这段代码?目前,在创建函数中未使用
$
和数据。而且,方法
甚至没有附加到返回的对象。@TKoL我已经编辑了问题中的代码。@WiktorZychla我已经编辑了问题中的代码。“我可以重写构造函数吗”-示例中没有构造函数。我想要类似这样的东西:构造函数(){if(条件){传播并执行被调用的方法}否则{不做任何事情}
有可能实现吗?您有一个使用对象初始值设定项生成的单例。由于您没有类
,这没有意义。此答案中的代码通过重写现有对象来实现相同的最终结果。
method.apply(this, arguments);
Obj = {
gtm : {},
method: function(){
if (someCondition) return;
// do rest of the method here
}
};