numb
そのため、プロトタイプの継承を介して、誤ってプライベート変数 ( ) にアクセスできました。いくつか質問があります。
Self-invoking anonymous function (SIAF) クロージャー内のこれらのプライベート変数は、SIAF の実行が終了した後に既に期限切れになっているはずではありませんか? が原因でエラーになると思っていました
'use strict'
。変数が期限切れにならないことを意図している場合、これはベスト プラクティスの一部として回避する必要がありますか?
コードは次のとおりです。
'use strict';
var GLOBAL = {};
// SELF-INVOKING ANONYMOUS FUNCTION
(function(){
var numb = 110;
var Person = function(first_name, last_name) {
this.name = first_name + ' ' + last_name;
};
Person.prototype.getNumb = function() { return numb; };
GLOBAL.Person = Person;
})();
// ANOTHER SELF-INVOKING ANONYMOUS FUNCTION
(function(){
function Animal(type_of_animal) {
this.type = type_of_animal;
}
Animal.prototype = Object.create(GLOBAL.Person.prototype);
GLOBAL.Animal = Animal;
})();
var dog = new GLOBAL.Animal('dog');
console.log( dog.getNumb() ); // This logs 110 to the console.
これがフィドルです:http://jsfiddle.net/6w2L1y5w/1/