JavaScript 对象构造函数未显示稳定的值
JavaScript Object constructor not showing stable value
我有一个js代码如下,
function findDealerByIdResponse() {
findDealerByIdResponse.prototype = findDealerByIdResponseType;
this.getPrefix = function(){
return "tns1";
};
this.getNS = function(){
return "http://www.hp.com/bookservice";
};
}
function findDealerByIdResponseType(){
var DEALER ;
this.getPrefix = function(){
return "tns1";
};
this.getNS = function(){
return "http://www.hp.com/bookservice";
};
}
function getName( obj ) {
var funcNameRegex = /function (.{1,})'(/;
var results = new Object();
results = (funcNameRegex).exec((obj).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
function test(){
var req = new findDealerByIdResponse();
alert(getName(req));
}
但是如果我第一次执行"测试",它会给出我期望的:"doTransactionType"。但之后它给出了"功能"。请解释原因。
谢谢
迪帕克
在第一次调用 findDealerByIdResponse
之后,你将其 prototype
属性设置为一个函数,即 findDealerByIdResponseType
。结果,.constructor
将被此赋值覆盖,它将解析为该函数的构造函数 - 与任何函数一样,该构造函数Function
.
相反,您需要以下内容:
// set prototype to a parent instance
findDealerByIdResponse.prototype = new findDealerByIdResponseType;
// restore .constructor
findDealerByIdResponse.prototype.constructor = findDealerByIdResponse;
您希望将其放在两个函数的声明之后。
相关文章:
- 在javascript中添加和显示对象的随机数组中的视频
- 如何使用for in循环在javascript中显示对象中的对象
- 如何移动PIXI显示对象
- 在鼠标悬停时显示对象的边框(Fabricjs)
- 使用jquery在不同的表中显示对象的元素
- 剑道角's自动完成在结果中显示对象
- ExtJS显示对象属性
- 在 angularjs 的数组中显示 x 对象
- JQuery UI 自动完成在滚动菜单时在文本框中显示 [对象对象]
- JSON对象在控制台中显示对象,但也包含来自php脚本返回的字符串的“未定义”
- 如果属性不存在,则不显示对象的数据
- 挖空 JS为每个绑定显示 [对象对象]
- 翡翠 - 显示对象属性 - 未定义
- 单击超链接后在同一页面中显示对象
- 渲染场景时不显示对象
- 它在文本区域中显示“[对象][对象]”
- Angularjs.在 http.get 之后显示对象属性
- 如何在嵌套级别不受限制的情况下显示对象的动态嵌套子数组对象
- 如何在IE9上显示对象的内容
- JavaScript 警报函数不会显示对象