这是我的代码:
function myOuterFunction() {
myInnerFunction();
var myObject = {say: myInnerFunction.myProperty1,
say2: myInnerFunction.myProperty2
};
function myInnerFunction(){
return {myProperty1: "hello",
myProperty2: "world"
};
}
console.log(myObject);
}
myOuterFunction();

为什么我无法使用函数属性?
我知道我可以用另一个变量解决这个问题,但为什么这个解决方案不可能?
由于
答案 0 :(得分:2)
您应该在使用之前存储该函数的值。
function myOuterFunction() {
var data = myInnerFunction();
var myObject = {
say: data.myProperty1,
say2: data.myProperty2
};
function myInnerFunction() {
return {
myProperty1: "hello",
myProperty2: "world"
};
}
console.log(myObject);
}
myOuterFunction();

答案 1 :(得分:0)
这是你应该写它的方式
function myOuterFunction() {
var myObject = {say: myInnerFunction().myProperty1,
say2: myInnerFunction().myProperty2
};
console.log(myObject);
}
function myInnerFunction(){
return {myProperty1: "hello",
myProperty2: "world"
};
}
myOuterFunction();