如何从引用属性确定父对象

时间:2012-06-18 07:18:41

标签: javascript object properties

var object = {foo: 'bar'};

JavaScript是否有办法确定object.fooobject的属性,是object.foo传递给getSource(object.foo) === object 的函数?换句话说,是否可以编写一个可以执行此操作的函数:

{{1}}

2 个答案:

答案 0 :(得分:6)

不,在JavaScript中没有类似的反向引用。传递给函数的是值 - 5"foo",对象引用等。没有关于该值的信息告诉您来自对象属性的值,更不用说哪个对象的属性。

答案 1 :(得分:2)

对于变量,Javascript使用“按值传递”,换句话说,当object.foo传递给任何函数时,函数将接收的是'bar',而不是对{{1}的引用}:

object.foo

换句话说,一旦您将var object = {foo: 'bar'}; function by_value(v) { v = v + v } document.write(by_value(object.foo)) // Writes 'bar' 传递给任何函数,就无法知道这来自object.foo

但是,如果传递一个对象,该变量的将是该对象的引用(注意:这不是真的“传递通过引用“,参见@ tj-crowder的评论:

object

作为一种廉价的解决方法,您可以在对象中存储“引用”:

function as_reference(o) {
    o.foo = o.foo + o.foo
}
document.write(by_reference(object)) // Writes 'barbar'

有用吗?