Recently, I have deeply immersed myself in JavaScript and came across a question.
What is the difference between the following object implementations:
var myFunction1 = (function myFunction1() {})(); var myFunction2 = {} var myFunction3 = function myFunction3() {}
Or with a longer example of three implementations that perform the same task.
<script> var myFunction1 = (function myFunction1() { var _privateVar = 'Private var'; this.publicVar = 'Public var'; function init( newPrivate, newPublic) { _privateVar = newPrivate; this.publicVar = newPublic; } function getPrivateVar(){ return _privateVar; } function setPrivateVar(string){ _privateVar = string; } return { init: init, getPrivateVar: getPrivateVar, setPrivateVar: setPrivateVar } })(); var myFunction2 = { _privateVar: 'Private var', publicVar: 'Public var', init: function init( newPrivate, newPublic) { this._privateVar = newPrivate; this.publicVar = newPublic; }, getPrivateVar: function getPrivateVar(){ return this._privateVar; }, setPrivateVar: function setPrivateVar(string){ this._privateVar = string; } } var myFunction3 = function myFunction3() { var _privateVar = 'Private var'; this.publicVar = 'Public var'; function init( newPrivate, newPublic) { _privateVar = newPrivate; this.publicVar = newPublic; } function getPrivateVar(){ return _privateVar; } function setPrivateVar(string){ _privateVar = string; } return { init: init, getPrivateVar: getPrivateVar, setPrivateVar: setPrivateVar } } var a, b, c; a = myFunction1; a.init('Private var updated', 'Public var updated'); console.log('== A =='); console.log(a.publicVar); </script>
I know that the first two examples are single, and the last allows me to create several objects. But what is the difference between the first two? Or are they the same, just written a little differently?
source share