I think the style could be created outside the function and reused in each created vector layer. Likewise for the GeoJSON parser.