File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -677,6 +677,46 @@ bankAccount.withdraw(100);
677
677
** [ ⬆ back to top] ( #table-of-contents ) **
678
678
679
679
680
+ ### Make objects have private members
681
+ This can be accomplished through closures (for ES5 and below).
682
+
683
+ ** Bad:**
684
+ ``` javascript
685
+
686
+ var Employee = function (name ) {
687
+ this .name = name;
688
+ }
689
+
690
+ Employee .prototype .getName = function () {
691
+ return this .name ;
692
+ }
693
+
694
+ var employee = new Employee (' John Doe' );
695
+ console .log (' Employee name: ' + employee .getName ()); // Employee name: John Doe
696
+ delete employee .name ;
697
+ console .log (' Employee name: ' + employee .getName ()); // Employee name: undefined
698
+ ```
699
+
700
+ ** Good** :
701
+ ``` javascript
702
+ var Employee = (function () {
703
+ function Employee (name ) {
704
+ this .getName = function () {
705
+ return name;
706
+ };
707
+ }
708
+
709
+ return Employee;
710
+ }());
711
+
712
+ var employee = new Employee (' John Doe' );
713
+ console .log (' Employee name: ' + employee .getName ()); // Employee name: John Doe
714
+ delete employee .name ;
715
+ console .log (' Employee name: ' + employee .getName ()); // Employee name: John Doe
716
+ ```
717
+ ** [ ⬆ back to top] ( #table-of-contents ) **
718
+
719
+
680
720
## ** Classes**
681
721
### Classes should obey Single Responsibility Principle (SRP)
682
722
As stated in Clean Code, "There should never be more than one reason for a class
You can’t perform that action at this time.
0 commit comments