入力を検証する単純な関数を作成しようとしていますが、親オブジェクト関数にアクセスできません。
問題はクロージャが必要なことだと思いますが、私はjsにまったく慣れておらず、クロージャに頭を悩ませているので、コードで実際に動作しているのを見ることが実際に問題である場合は役立つと思いました。
function validate(value, validator){
if(validator == 'login_cred'){
testName(value);
}
var test = {
minLength: function (val, length) {
return val.length >= length;
}
}
function testName(value){
if(!test.minLength(value, 5)){
console.log('more chars please...');
}
}
}
//call
validate("str", 'login_cred');
関数を呼び出すと、テストは未定義のエラーになります。
これはクロージャが必要な場合ですか?..もしそうなら、クロージャは上記のコードでどのように最適に機能しますか?