Was reading a blog post from appendTo and came across this pattern:
(function( skillet, $, undefined ) {
//Private Property
var isHot = true;
//Public Property
skillet.ingredient = 'Bacon Strips';
//Public Method
skillet.fry = function() {
var oliveOil;
addItem( 'tn Butter nt' );
addItem( oliveOil );
console.log( 'Frying ' + skillet.ingredient );
};
//Private Method
function addItem( item ) {
if ( item !== undefined ) {
console.log( 'Adding ' + $.trim(item) );
}
}
}( window.skillet = window.skillet || {}, jQuery ));
This is intuitive for me, but as soon as this pops up:
//Adding a Public Property
skillet.quantity = "12";
//Adding New Functionality to the Skillet
(function( skillet, $, undefined ) {
//Private Property
var amountOfGrease = "1 Cup";
//Public Method
skillet.toString = function() {
console.log( skillet.quantity + ' ' +
skillet.ingredient + ' & ' +
amountOfGrease + ' of Grease' );
console.log( isHot ? 'Hot' : 'Cold' );
};
}( window.skillet = window.skillet || {}, jQuery ));
skilet.ingredient skillet.quantity amountofGrease is accessed into the toString but I'm not entirely sure how isHot is accessed. Can anyone explain how when adding new functionalities later, this design still has access to original variables in the IIFE?
Aucun commentaire:
Enregistrer un commentaire