我如何检查该函数是否在我的班级中存在

时间:2019-05-29 18:30:49

标签: javascript

我开始使用Javascript OOP,但我仍然是初学者, 我创建了一个类,我想知道在类中是否存在deleteQuote函数?

这是我的班级代码

class Quote{

deleteQuote(callback){
    $('tr#'+callback.quoteid).hide('slow', function(){
        $(this).remove();
    });
}}

var quote = new Quote();
var y = quote.deleteQuote();
console.log(typeof y);

谢谢

4 个答案:

答案 0 :(得分:2)

您可以在hasOwnProperty()的{​​{1}}对象上prototype

Quote

答案 1 :(得分:1)

您应该这样使用它的typeof

class Quote {

  deleteQuote(callback) {
    $('tr#' + callback.quoteid).hide('slow', function() {
      $(this).remove();
    });
  }
}

var quote = new Quote();
let exists = typeof quote.deleteQuote !== "undefined";
console.log(exists);

typeof返回您提供的元素的变量类型。在这种情况下,当它返回undefined时,表示未定义您要搜索的对象,方法,属性,函数等。

答案 2 :(得分:0)

我也使用Ajax从PHP接收类名和函数名。 但这对我的代码不起作用

    $.post(action, object, function(data){
    if(typeof [data.className.methodName] === "function")
        console.log(101)
    return data;
}, 'json');

请您更正我的代码,我想检查JS类“ className ”是否包含我的“ methodName

答案 3 :(得分:0)

我不知道为什么会收到错误消息 这是我的代码

cls = data.className;
console.log(cls.prototype.hasOwnProperty('deleteQuote'));

控制台错误:

TypeError: cls.prototype is undefined