如何测试Javascript对象是否具有具有给定名称的方法?
考虑以下示例:如何测试Javascript对象是否具有具有给定名称的方法?,javascript,Javascript,考虑以下示例: var Container = function(param) { this.member = param; var privateVar = param; if (!Container.prototype.stamp) { // <-- executed on the first call only Container.prototype.stamp = function(string) { return
var Container = function(param) {
this.member = param;
var privateVar = param;
if (!Container.prototype.stamp) { // <-- executed on the first call only
Container.prototype.stamp = function(string) {
return privateVar + this.member + string;
}
}
}
var cnt = new Container();
var容器=函数(param){
this.member=param;
var privateVar=param;
如果(!Container.prototype.stamp){/您可以使用
你可以用
您可以使用以下方法测试是否存在戳记
:
if (cnt.stamp) ...
或者,您可以检查它是否是具有
if (typeof cnt.stamp === 'function') ...
您可以使用以下方法测试是否存在戳记
:
if (cnt.stamp) ...
或者,您可以检查它是否是具有
if (typeof cnt.stamp === 'function') ...
我在一些显示Array.hasOwnProperty('push')
的示例中看到了hasOwnProperty。但在我的示例中,它不起作用!我在一些显示Array.hasOwnProperty('push')
的示例中看到了hasOwnProperty。但在我的示例中,它不起作用!如果在javascript控制台中单独测试它,它会起作用:var a={b:function(){};typeof a.b
。也许f_SetEk不是一个函数?它说它是图像中未定义的标识符…不,它是函数,但在visual studio监视窗口中它没有说它是函数。但你是对的,它在浏览器中工作得很好。如果在javascript控制台中单独测试它,它确实工作:var a={b:function(){};typeof a.b
。也许f_SetEk不是一个函数?它说它是图像中未定义的标识符…不,它是函数,但在visual studio Watch窗口中它没有说它是函数。但你是对的,它在浏览器中工作得很好。我认为visual studio Watcher被破坏了:)因为它在Firebug上工作。我认为visual studio Watcher是兄弟肯:)因为它对萤火虫有效。