假设我们有以下用于处理Date
个对象的js函数:
targetDate
和referenceDate
旨在成为Date
个对象。
function validateDate(targetDate, referenceDate) {
if (targetDate < referenceDate) return referenceDate;
else return targetDate;
}
现在假设我们希望返回的对象是一个新实例,而不是指向与输入参数相同的内存地址的指针。
为了做到这一点,我们是否需要将return dateObjectInstance
替换为return new Date(dateObjectInstance)
,或者return
是否已经实例化了一个新对象?
换句话说:对象是通过引用返回还是实例化的新实例?
答案 0 :(得分:4)
您的原始假设是正确的 - 如果不使用new
,则会返回对原始对象的引用。
而且,正如PointedEars指出的那样,没有“通过引用返回”这样的事情。