3 回答

TA貢獻1780條經驗 獲得超5個贊
2,a = [1,2,3,4];
創(chuàng)建了一個新的數組對象,然后把a
指向它
3,var trueFactorial = factorial;
把factorial
指向的對象賦值給trueFactorial
,所以trueFactorial
指向的是最初聲明的方法

TA貢獻1818條經驗 獲得超3個贊
復合類型(Function、Object 等)的賦值是引用傳遞,他們都指向了同一個內存地址,
// a變量現在存了一個數組的內存塊地址在棧內。
// a變量本身也需要一個內存塊存放數組的地址
var a = [1, 2, 3, 4];
// a把地址傳給了b,b現在也指向了 [1,2,3,4]。
// a和b沒啥關系,只是指向同一個堆內存塊而已
var b = a;
// a變量被重新賦值,a的內存塊中存放的地址發(fā)生變化,不再指向原來的數組
a = [5,6,7];
// a被重新賦值并不會改變b的指向,因為二者在棧內是不同的內存塊
console.log(b); // [1,2,3,4]
歡迎拍磚?。?/p>

TA貢獻1877條經驗 獲得超1個贊
{
"type": "Program",
"start": 0,
"end": 41,
"body": [
{
"type": "VariableDeclaration",
"start": 0,
"end": 16,
"declarations": [
{
"type": "VariableDeclarator",
"start": 4,
"end": 15,
"id": { "type": "Identifier", "start": 4, "end": 5, "name": "a" },
"init": {
"type": "ArrayExpression",
"start": 8,
"end": 15,
"elements": [
{ "type": "Literal", "start": 9, "end": 10, "value": 1, "raw": "1" },
{ "type": "Literal", "start": 11, "end": 12, "value": 2, "raw": "2" },
{ "type": "Literal", "start": 13, "end": 14, "value": 3, "raw": "3" }
]
}
}
],
"kind": "var"
},
{
"type": "VariableDeclaration",
"start": 17,
"end": 27,
"declarations": [
{
"type": "VariableDeclarator",
"start": 21,
"end": 26,
"id": { "type": "Identifier", "start": 21, "end": 22, "name": "b" },
"init": { "type": "Identifier", "start": 25, "end": 26, "name": "a" }
}
],
"kind": "var"
},
{
"type": "ExpressionStatement",
"start": 28,
"end": 41,
"expression": {
"type": "AssignmentExpression",
"start": 28,
"end": 41,
"operator": "=",
"left": { "type": "Identifier", "start": 28, "end": 29, "name": "a" },
"right": {
"type": "ArrayExpression",
"start": 32,
"end": 41,
"elements": [
{ "type": "Literal", "start": 33, "end": 34, "value": 1, "raw": "1" },
{ "type": "Literal", "start": 35, "end": 36, "value": 2, "raw": "2" },
{ "type": "Literal", "start": 37, "end": 38, "value": 3, "raw": "3" },
{ "type": "Literal", "start": 39, "end": 40, "value": 4, "raw": "4" }
]
}
}
}
],
"sourceType": "script"
}
這個就是你要的程序。請分清賦值語句做了什么。賦值語句會更改Identifier的值。pop語句算是一個成員方法,不會改變Identifer的指向。
添加回答
舉報