我使用以下代码进行基本测试
var A={};
var B={name:"come"};
A.pro=B;
B=null;
//Here A.pro is still point to normal B, not to a null
如果我想在B改变时怎么办,A.pro也会改变?
答案 0 :(得分:5)
您可以使用匿名功能,例如:
var A = {};
var B = {
name: "come"
};
A.pro = function() {
return B
};
// or with arrow function
// A.pro = () => B;
B = null;
console.log(A.pro());
如果您想使用B
更新A.pro()
值,可以使用可选参数,例如:
var A = {};
var B = {
name: "come"
};
A.pro = function(newVal) {
(typeof newVal === 'undefined') ? false : (B = newVal);
return B;
};
B = null;
console.log(A.pro());
A.pro(4);
console.log(A.pro());
答案 1 :(得分:3)
您可以使用嵌套方法和其他对象。
var a = {},
b = { data: { name: "come" } };
a.pro = b;
console.log(a);
b.data = null;
console.log(a);
.as-console-wrapper { max-height: 100% !important; top: 0; }