请帮助运行不同范围的功能
有以下代码:
function a(){
var rrr = 8;
function aim(arg){
console.log('aim' + arg);
console.log(rrr);
}
};
function b(){
a.aim('this is argument');
};
呼叫a.aim ('this is argument');
不起作用,控制台显示消息
未捕获的ReferenceError:a未定义
试图通过申请来打电话。也没有成功
答案 0 :(得分:4)
使用揭示模块模式:
var a = function(){
var rrr = 8;
function aim(arg){
console.log('aim' + arg);
console.log(rrr);
}
return {
aim: aim
}
}();
function b() {
a.aim('test');
}
答案 1 :(得分:0)
function a(){
var rrr = 8;
return function aim(arg){
console.log('aim' + arg);
console.log(rrr);
}
};
function b(){
var aim = a();
aim('this is argument');
};
答案 2 :(得分:0)
如果要将a
函数称为对象,则需要先创建它。此外,aim
应该是此函数(类)的属性
function a() {
var rrr = 8;
this.aim = function(arg) {
console.log('aim' + arg);
console.log(rrr);
}
};
function b() {
var aa = new a();
aa.aim('this is argument');
}
答案 3 :(得分:0)
您需要进行两项小修改:
function a(){
var rrr = 8;
this.aim = function(arg){
console.log('aim' + arg);
console.log(rrr);
}
};
var aa = new a();
function b(){
aa.aim('this is argument');
};