CNode

求助 关于 console

Hhackerjs发布于13 年前最后回复13 年前6 回复4911 浏览0 收藏

var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good ="good"; }

fn(obj); fn(obj);

chrome 控制台输出为 :

Object {hello: 1, world: 2} Object {hello: 1, world: 2, good: "good"}

为什么两次输出不一样呢?

查看回复

回复 (6)

H
hackerjs#1·13 年前

var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good ="good"; }

fn(obj);//只调用一次

chrome 控制台输出为 :

Object {hello: 1, world: 2, good: "good"}

H
hackerjs#2·13 年前

var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good ="good"; }

fn(obj); ; //也是调用一次,再加个空语句

chrome 控制台输出为 :

Object {hello: 1, world: 2}

J
jiyinyiyong#3·13 年前

前面两次输出不一样是因为 fn 进行了赋值, 赋值前打印, 这个我想你能理解 后面两份代码, 我这边都是最后一个输出, 你要不要确定下?

I
island205#4·13 年前

在JavaScript中,对象是引用传值的。两次调用,但对象是同一个。

A
a272121742#5·13 年前

你的第二次实验结果值输出Object {hello: 1, world: 2},我测试的结果是这样。

M
manecocomph#6·13 年前

引用传递

参与回复
登录后即可参与回复。登录