考虑以下示例:
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();
有没有办法确定对象cnt
是否有一个名为stamp
的方法而不知道它是从Container
实例化的?
答案 0 :(得分:2)
您可以使用hasOwnProperty
o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop'); // returns true
o.hasOwnProperty('toString'); // returns false
o.hasOwnProperty('hasOwnProperty'); // returns false
答案 1 :(得分:2)
您可以使用以下代码测试stamp
是否存在
if (cnt.stamp) ...
或者您可以检查它是否是
的功能if (typeof cnt.stamp === 'function') ...