Which parameter should i pass for the first parent object from which others will inherit and which one is more efficient
Object.create(Object.prototype)
Obj
What is being returned is an object.
>>> typeof Object.create(Object)
<<< "object"
>>> Object.create(Object)
<<< Function {}
// ^^
Function is the name which Chrome addresses the object's constructor. See How are javascript class names calculated for custom classes in Chrome Dev Tools?
This part of the answer addresses @phenomnomnominal's comment in the question, explaining why the created object has inherits function properties such as call.
The Object constructor is a function, and thus inherits from the Function prototype:
>>> Object.call === Function.prototype.call
<<< true
So an object having Object as prototype will have a link to the Function prototype via prototype chain as well:
>>> Object.create(Object).call === Function.prototype.call
<<< true
And as mentioned by @TJ, using a constructor as prototype is rather odd. You should specify an object as the prototype that the created object will inherit from. @TJ already did a pretty good job explaining this part.