如果我只有对属性的引用,我可以访问属性的对象吗?

Can I get to the object of a property if I have a reference to the property only?

本文关键字:属性 访问 我可以 对象 引用 如果      更新时间:2023-09-26

我在变量中引用了对象的属性,是否可以访问该属性所属的对象?

var obj = {
    p1: 1,
    p2: function(){
        return this;
    },
    p3: obj,
    p4: function() {
        return obj;
    }
}
// v1 is now integer, we cannot get actual `obj` from this `v1`
var v1 = obj.p1;
// `v2()` returns `window` object (or current context object), 
// so if `obj` is created only in global context (or current 
// context which you're calling `v2()`), you can get reference to `obj`
var v2 = obj.p2;
// as @Ignacio mentioned, you can use `v3` as reference to `obj`
var v3 = obj.p3;
// `v4()` also reference to `obj`
var v4 = obj.p4; 

除非属性值本身包含对对象的引用。