function缺少关联函数中的原型值时中断

时间:2015-12-23 06:55:16

标签: javascript

如何查看donald duck在'function inTheForest(object)'中是否有名称,如果它没有显示警告('找不到名字'),那么继续显示john人的警报?

!==

4 个答案:

答案 0 :(得分:1)

您可以通过 typeof

进行检查

喜欢这个

if(typeof object.name === "undefined"){
  console.log("no name found")
}

答案 1 :(得分:0)

试试这个。

function inTheForest(object) {
  object.quack();
  object.feathers();
  if(typeof object.name==='function'){
       object.name(); 
  }else{
      alert('no name found');
  }
}

实际上,在调用属性之前,应始终检查属性是否为函数(如果不确定是否存在prop)。因此,您可能希望将其用于quackfeathers

答案 2 :(得分:0)

如果object.name存在,则为简单的if语句

object.name()? object.name(): alert("no name found");

答案 3 :(得分:0)

您可以执行以下操作:

if (object.quack) object.quack();
if (object.feathers) object.feathers();
if (object.name) object.name();

您可能还想介绍else声明:

if (object.quack) 
    object.quack() 
else 
    console.log('Warning! Every object should be able to quack. Not found for ' + object);

if (object.feathers) object.feathers();
if (object.name) object.name();

这是有效的,因为不存在的函数被评估为 undefined falsy ,并且现有函数是 {{ 3}}