如何获得原型属性

时间:2017-10-16 20:46:14

标签: javascript prototype

我写这段代码,但我现在不知道为什么我的console.log给我未定义,我怎样才能获得原型属性或函数的价值



nonOwners = UserDevice.objects.filter(device=device, is_owner=False)

if nonOwners is None:
    return errormsg('non nonOwners found for this device')

nonOwnersArray=[]

for nonOwner in nonOwners:

    nonOwner_data = model_to_dict(nonOwner,
                               fieldlist=(
                                   'device.serial',
                                   'user.email',
                                   'is_alerts_enabled',
                                   'is_admin',
                                   'is_owner',
                                   ),
                               rename={
                                   'device.serial': 'serial',
                                   'user.email': 'email'})


    nonOwnersArray.append(nonOwner_data)




我不会实现的是将此用户列表作为我的对象属性,如某些数组中的User.allUsers。 感谢

1 个答案:

答案 0 :(得分:0)

这是因为$.getJSON是异步的。

当您从User原型创建对象时,$.getJSON必须调用其回调。

另一方面,您尝试模拟将数据属性添加到给定原型的全局变量。这是一种不好的做法,在一天结束时,你已经意识到你已经陷入了这种做法。

每当网站或应用程序启动时,您需要执行初始化代码,以便allUsers被调用一次并注入所有位置:

const initApp = () =>  Promise.all([
    $.getJSON("/someData/users.json")
    // other comma-separated async functions which return promises
])

initApp().then(([allUsers, otherData, yetAnotherData]) => {

    callSomeFunctionWhichRequiresAllUsers(allUsers)
})