Javascript 如何在子函数中引用父对象?

Javascript 如何在子函数中引用父对象?,javascript,Javascript,给定这样一个对象: var MyObj = { bar: 10, foo: function() { alert(MyObj.bar); } } 我如何从MyObj.foo中一般引用MyObj,这样如果我将var MyObj更改为var MyObj2,我就不需要修改foo函数了?类在这里会对您有很大帮助。在ES5中,可以这样创建类: 函数MyObj(){ 这个.bar=10; } MyObj.prototype.foo=函数(){ console.log(this.ba

给定这样一个对象:

var MyObj = {
  bar: 10,
  foo: function() {
     alert(MyObj.bar);
  }
}

我如何从
MyObj.foo
中一般引用
MyObj
,这样如果我将
var MyObj
更改为
var MyObj2
,我就不需要修改
foo
函数了?

类在这里会对您有很大帮助。在ES5中,可以这样创建类:

函数MyObj(){
这个.bar=10;
}
MyObj.prototype.foo=函数(){
console.log(this.bar);
}
var objInstance=新的MyObj;
objInstance.foo();
var objInstance2=新的MyObj;
objInstance2.bar=20;

objInstance2.foo()
如果你想把MyObj看作一个类,你可以做一些建议的事情,或者

function MyObj(){
    this.bar = 10;
    this.foo = function(){ 
        return this.bar; 
    }
}
var a = new MyObj();
var b = new MyObj();
b.bar = 5;
console.log(a.foo(), b.foo()) // 10 5

相反,如果您只想引用对象的
bar
值,那么您可以替换
警报(MyObj.bar)带有
警报(此.bar)

根据执行上下文,使用
this
而不是
MyObj
。如果执行
MyObj.foo(),则可能重复的
this.bar
无效谢谢,这看起来是我需要的。我并不是真的想做真正的“类”逻辑——只是想或多或少地命名一些助手函数的名称空间。如果我有嵌套结构(
MyObj.foo.bar.baz.func1();
),我想我可以做
var that=this
位于函数顶部,然后
将始终引用父级,无论我在何处