Quando usar setAttribute vs .attribute = em JavaScript?

Tem uma prática recomendada em usar setAttribute lugar do ponto (. notação de atributo )? Por exemplo: myObj.setAttribute("className", "nameOfClass"); myObj.setAttribute("id", "someID"); ou myObj.className = "nameOfClass"; myObj.id =