相关疑难解决方法(0)

JavaScript是一种传递引用还是按值传递的语言?

原始类型(Number,String等)按值传递,但是对象是未知的,因为它们可以是值传递(如果我们认为持有对象的变量实际上是对象的引用)并且通过引用传递(当我们认为对象的变量保存对象本身时).

虽然最后并不重要,但我想知道提交传递约定的参数的正确方法是什么.是否有JavaScript规范的摘录,它定义了与此相关的语义?

javascript pass-by-reference pass-by-value

1311
推荐指数
19
解决办法
34万
查看次数

Javascript - 原始与引用类型

在下面的代码中,我们传递一个对象.所以,根据javascript我们传递了一个引用和操作.

var a = new Number(10);
x(a);
alert(a);

function x(n) {
n = n + 2;
}
Run Code Online (Sandbox Code Playgroud)

但是提醒10而不是12.为什么?

javascript pass-by-reference

7
推荐指数
1
解决办法
833
查看次数

对象引用在JavaScript中如何工作?

我是JavaScript的新手,我认为对象是通过引用传递的。

我期望的输出是:

{ one: 1 } { one: 1 }
{ two: 2 } { two: 2 }
Run Code Online (Sandbox Code Playgroud)

获得的输出:

{ one: 1 } { one: 1 }
{ two: 2 } { one: 1 }
Run Code Online (Sandbox Code Playgroud)

什么时候b引用地址a,为什么b{ one: 1 }

{ one: 1 } { one: 1 }
{ two: 2 } { two: 2 }
Run Code Online (Sandbox Code Playgroud)

javascript

3
推荐指数
1
解决办法
66
查看次数

JavaScript对象行为

我经常不会感到难过,但我现在只是在失言.

使用Chrome 37.0.2062.120 m

有人可以向我解释为什么我console.log();会报告这些结果吗?

JS代码

var some_obj = {min:1};

var another_obj = {};

console.log(some_obj);

another_obj['sometarget'] = some_obj; // <- What is this sorcery?!?!?
another_obj['sometarget']['required'] = true;

console.log(some_obj);
Run Code Online (Sandbox Code Playgroud)

console.log()输出

Object {min: 1}
Object {min: 1, required: true}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

http://jsfiddle.net/qrnaw7j2/1/

javascript object

2
推荐指数
1
解决办法
97
查看次数

为什么JavaScript通过引用传递?

var a = [3, 4, 5];
var b = [6, 7, 8];

function why() {
    b = a;
    b[0] = 1;
    alert(a[0] + '    ' + b[0]);
}
why();
Run Code Online (Sandbox Code Playgroud)

结果是a[0]=1, b[0]=1;.好像JavaScript正在通过引用传递?

但在这种情况下:

var a = [3, 4, 5];
var b = [6, 7, 8];

function why() {
    b = a;
    b = [1, 2, 3];
    alert(a + '    ' + b);
}
why();
Run Code Online (Sandbox Code Playgroud)

结果是a=[3,4,5]b = [1,2,3].它为什么通过价值?如何避免通过引用传递?

javascript

1
推荐指数
1
解决办法
213
查看次数