从对象字面量调用函数
var runApp = {
init: function(){
this.validate();
},
run: function() {
var myStr = "My Name";
var abc = function()
{
return myStr;
}
},
validate: function() {
var val = this.run().abc(); // It Gives "Uncaught TypeError: Cannot call method 'abc' of undefined "
alert(val);
}
};
runApp.init();
如何在函数validate中调用函数abc()
?
最佳答案
函数 abc 是在“run”范围内定义的,因此无法从其他函数访问。如果您确实想要这个,您可以使“abc”在“this”范围内可用。
var runApp = {
init: function(){
this.validate();
},
run: function() {
var myStr = "My Name";
this.abc = function() {
return myStr;
}
},
validate: function() {
this.run(); // run this one first so function abc exists
var val = this.abc();
alert(val);
}
}
runApp.init();
简而言之:如果不修改代码本身就无法做到这一点。
关于javascript - 从对象字面量调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20610394/