It depends on the data type of an argument. Immutable data types are passed by value (effectively a copy of value is created) while mutable data types are passed by reference (reference to an object is passed into function).