话不多说,上图。
打印答案:Larry.
内存图:
解析:因为function出现在开头,并未被调用,因此先在栈区开辟一个obj变量,然后name设为tom.function函数传入参数后,将参数的name变为Larry。因此打印出的是Larry。
小测试二:(可能会在面试中问到)
打印答案:Terry,tom
内存图:
解析:因为function出现在开头,并未被调用,因此先在栈区开辟一个person变量,指向堆区的{name:....},function函数传入参数后,将name变为tom,并且重新定义了一个变量,指针发生变化。指向{name:terry}.看图可知,答案便是Terry和tom.