JavaScript无法访问同级方法
JavaScript cannot access sibling method
给定以下内容,我如何使其正确工作?
return {
methodA: function() {
return methodB();
},
methodB: function() {
alert("hi");
}
}
您需要通过this
引用上下文。
var foo = {
methodA: function() {
return this.methodB(); //context
},
methodB: function() {
alert("hi");
}
}
foo.methodA(); //alerts "hi"
您似乎是从类似模块的函数返回的。安全的方法是不使用this
,而是保留对对象的引用,这样函数的调用方式就无关紧要了。
function getObj() {
var obj = {
methodA: function() {
return obj.methodB();
},
methodB: function() {
alert("hi");
}
};
return obj;
}
var myObj = getObj();
// Works
myObj.methodA();
// Works but would not work if you were using `this` as suggested by Utkanos.
someDomElement.addEventListener('click', myObj.methodA);
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 如何从其他方法访问Angular.js$scope
- 从同一控制器 Angularjs 中的另一种方法访问$scope变量
- 是否可以从 javascript 中的原型方法访问私有类属性
- 从子方法访问父对象
- 从 CoffeeScript 中类的属性中的方法访问属性的属性
- 使JavaScript私有方法可供其公共方法访问
- RequireJS, Pub/Sub.如果没有糟糕的解决方法,我无法从其自己的方法访问视图实例
- Javascript 从父级中定义的继承类方法访问类变量
- 实例化后可从方法访问的 Javascript 局部变量
- 私有变量通过javascript中的私有方法访问
- 如何在javascript中的同一对象中使用公共方法访问私有变量
- 无法通过javascript中的特权方法访问私有方法
- 从公共方法访问私有对象变量
- 无法通过公共方法访问javascript私有成员
- 我使用什么JavaScript模式从原型方法访问私有方法
- 如何通过ASP.NET WebForm上的jQuery$.get()方法访问URL
- OOP Javascript-通过另一个公共方法从公共方法访问特权方法
- 从子方法访问父属性
- 从Sequelize getter方法访问关联表