Are both "as a doctor" and "for a doctor" considered as object complement in the following? Is it the same with "as an insult" in the third sentence?
1. I mistook him as a doctor.
2. I mistook him for a doctor.
3. You shouldn't take the remark as an insult.
It depends on what definition you use.
In a traditional definition, a
complement is an element (word, phrase, clause) that completes the meaning of another element. So, a
subject complement completes the meaning of the subject, and an
object complement completes the meaning of an object. Since "for a doctor" completes the meaning of the object "him" and "as an insult" completes the meaning of the object "the remark," "for a doctor" and "as an insult" are defined as
object complements.
In modern grammars, a
complement is an element "selected" by a "head." And
complement stands in contrast to an
adjunct, which is an element
not selected by a "head." "For a doctor" is an
adjunct because I can drop it and simply say
I mistook him. The reason I can drop it is that "for a doctor" is not selected by any word. Now, we lose some information when we drop "for a doctor," but that's a semantic loss. Syntactically,
I mistook him is a sound sentence with no change in basic meaning.
By contrast, you can't drop "as an insult" because what's left behind (
You shouldn't take the remark) is completely different from
You shouldn't take the remark as an insult. The reason is that "as an insult" is a
complement selected by the noun "the remark."
The change in meaning is this: in
You shouldn't take the remark as an insult, "take" means "understand/interpret;" in
You shouldn't take the remark, dropping "as an insult," "take" begins to look like it means "possess/accept/etc."