JavaScript属性返回undefined。

3
function ordersUtil() {

    var obj = {

        currentPage: 1
    }

    return obj;
}


console.log(ordersUtil.currentPage);

console.log(ordersUtil.currentPage); 返回undefined。

我正在设置JavaScript对象字面量中的默认属性,但为什么我无法直接访问它?我知道我可以在我的对象后面添加ordersUtil.currentPage = 1,然后我就可以得到它的值。我的问题是如何设置默认值并访问它们?


4
ordersUtil().currentPage 可以返回您想要的结果,但 ordersCutil.currentPage 不能。 - Brad
1
是的,你必须调用该函数才能发生任何事情 :)。 - Robert Moskal
1个回答

2

因为函数本身没有该属性,所以它是未定义的(undefined)。但如果你调用了它,返回的对象(Object)会有这个属性:

var orders = ordersUtil();

console.log(orders.currentPage);

function可以拥有属性,正如您所发现的:

我知道在我的对象后面可以加上 ordersUtil.currentPage = 1,但目前它并没有实现。

但是,它现在还没有实现。


所以 ordersUtil() 创建了一个对象实例? - highwingers
@highwingers 不完全正确。花括号({...})将创建对象,然后ordersUtil()可以返回它。但是,你只需要调用ordersUtil()就可以了。 - Jonathan Lonowski
我理解,但是当我设置它的值后,为什么我可以在不使用ordersUtil()的情况下访问它呢? - highwingers
2
@highwingers 因为JavaScript的Function也是对象,可以拥有自己的属性。在你当前的代码片段中,currentPage只是属于另一个对象。 - Jonathan Lonowski
哦,天啊,我现在感觉好蠢啊,我完全忘记了我的函数里还有另一个对象。哈哈 - highwingers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接