函数返回undefined与三元运算符

时间:2017-08-06 05:13:53

标签: javascript function undefined

我试图绕过isBreadwinner函数。为什么true没有传入(**)函数。为什么是收入成员:未定义

<script>
    "use strict"

    //creating a user object 
    let user = {
        name : "Stackoverflow Developer",
        age : 23
    };

    // appending properties to the user object
    user.location = "NYC";
    user["occupation"] = "JavaScript Developer";
    user["salary"] = 10;

    //(**)
    let isBreadwinner = () => {
        (user.salary) ? true : false;
    };

    console.log("asd" + isBreadwinner());
    user["Earning member"] = isBreadwinner();

    // printing the object
    console.dir("User dir object" + JSON.stringify(user));
    console.dir(user); //Earning member:undefined
</script>

2 个答案:

答案 0 :(得分:2)

您错过了return功能中的isBreadWinner

let isBreadwinner = function() {
    return (user.salary) ? true : false;
};

如果你想跳过使用return,那么你可能想要使用一个ES6箭头函数,如果所有内容都是在没有块{}的情况下在一行上声明的,那么它具有隐式返回。

let isBreadwinner = () => (user.salary) ? true : false;

答案 1 :(得分:1)

你可以写这样的功能

let isBreadwinner = () => (user.salary) ? true : false;

或只是将return添加到您的功能