javascript - 我正在更改 javascript 类的构造函数,但新的构造函数没有被调用?

标签 javascript javascript-framework sapui5

我正在使用 SAP UI5 框架。我正在创建一个类的实例,然后更改类的构造函数。创建类的第二个实例时,不会调用新的构造函数!

var myConstructor = function(){
    alert('my own constructor');
}
var btn = new sap.m.Button({text:'Hello World'}) //sap.m.Button is a class
sap.m.Button.prototype.constructor = myConstructor; //Changing the constrcutor
var btn2 = new sap.m.Button({text:'h'}); // why myConstructor aint called !

这是工作示例 http://jsbin.com/voluc/2/edit

谢谢

最佳答案

这样做实际上并没有改变构造函数

sap.m.Button.prototype.constructor = myConstructor;

您只需更改原型(prototype)使用的属性来引用其构造函数。

要完全更改构造函数,您只需重新分配它

sap.m.Button = myConstructor;

我还是不知道你为什么要这么做。如果您想临时更改构造函数,那么您可能需要先存储它,然后将其设置回初始版本。

var oldCtor = sap.m.Button;
sap.m.Button = = myConstructor;
// finished doing your tasks
sap.m.Button = oldCtor;

关于javascript - 我正在更改 javascript 类的构造函数,但新的构造函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21750997/

相关文章:

javascript - Mootools:发送请求时如何阻止浏览器卡住

javascript - 可以将模型传播到组件,但不能传播到 sap.ui.jsfragment

sapui5 - UI5 sap.m.Table itemPress 事件

javascript - 使用 ajax 请求最快的方法是什么?

javascript - $watch 与 ngChange

javascript - PostgreSQL 通过调用 CURRENT_DATE 获取昨天

javascript - 何时在 JavaScript 中使用 Set

angularjs - 错误 : 10 $digest() iterations reached. 正在中止!使用动态排序谓词

javascript - 如何在knockoutjs中为if主体设置动画?

css - 如何使用:last-child without defining the elements on the HTML page?