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
位于函数顶部,然后该
将始终引用父级,无论我在何处