From ee148c6d4eb46326c03ec4c4b5c139417a9633ac Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 09:25:21 -0400 Subject: [PATCH 1/7] fibonacci completed but not passing test. --- package-lock.json | 165 ++++++++++++++++++++++++++++++++++---- package.json | 2 +- src/.vscode/settings.json | 3 + src/README.md | 26 ++++++ src/readme | 0 src/recursion.js | 13 ++- yarn-error.log | 68 ++++++++++++++++ 7 files changed, 251 insertions(+), 26 deletions(-) create mode 100644 src/.vscode/settings.json create mode 100644 src/README.md create mode 100644 src/readme create mode 100644 yarn-error.log diff --git a/package-lock.json b/package-lock.json index c2d7130..c1b8751 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "js-homework-1", + "name": "javascript-ii", "version": "1.0.0", "lockfileVersion": 1, "requires": true, @@ -127,6 +127,14 @@ "sprintf-js": "1.0.3" } }, + "aria-query": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.3.0.tgz", + "integrity": "sha1-y4qZhOKGJxHIPICt5bj1yg3itGc=", + "requires": { + "ast-types-flow": "0.0.7" + } + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -169,6 +177,15 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, + "array.prototype.find": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", + "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.11.0" + } + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -187,6 +204,11 @@ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", @@ -1049,6 +1071,11 @@ "es5-ext": "0.10.30" } }, + "damerau-levenshtein": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", + "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=" + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1095,6 +1122,15 @@ "strip-bom": "2.0.0" } }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -1151,6 +1187,11 @@ "jsbn": "0.1.1" } }, + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" + }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -1169,6 +1210,28 @@ "is-arrayish": "0.2.1" } }, + "es-abstract": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", + "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, "es5-ext": { "version": "0.10.30", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", @@ -1458,6 +1521,40 @@ } } }, + "eslint-plugin-jsx-a11y": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz", + "integrity": "sha1-d5uw/nsI2lZKQiYkkR3hAGHgSO4=", + "requires": { + "aria-query": "0.3.0", + "ast-types-flow": "0.0.7", + "damerau-levenshtein": "1.0.4", + "emoji-regex": "6.5.1", + "jsx-ast-utils": "1.4.1", + "object-assign": "4.1.1" + } + }, + "eslint-plugin-react": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz", + "integrity": "sha1-VMLpkGt2+dEBQgML3DTp1oQKC7I=", + "requires": { + "array.prototype.find": "2.0.4", + "doctrine": "1.5.0", + "jsx-ast-utils": "1.4.1" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + } + } + }, "eslint-restricted-globals": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", @@ -1673,6 +1770,11 @@ "for-in": "1.0.2" } }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1699,8 +1801,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "generate-function": { "version": "2.0.0", @@ -1853,7 +1954,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, "requires": { "function-bind": "1.1.1" } @@ -2022,6 +2122,11 @@ "builtin-modules": "1.1.1" } }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + }, "is-ci": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", @@ -2031,6 +2136,11 @@ "ci-info": "1.1.1" } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2148,6 +2258,14 @@ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", "dev": true }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.1" + } + }, "is-resolvable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", @@ -2157,6 +2275,11 @@ "tryit": "1.0.3" } }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2172,8 +2295,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -2688,6 +2810,11 @@ } } }, + "jsx-ast-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", + "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=" + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -2929,8 +3056,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, "object.omit": { "version": "2.0.1", @@ -3695,15 +3826,6 @@ } } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", @@ -3724,6 +3846,15 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", diff --git a/package.json b/package.json index f761ac7..6c36267 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "repository": { "type": "git", "url": "git+https://github.com/LambdaSchool/javascript-ii.git" - }, + }, "devDependencies": { "babel-jest": "^19.0.0", "eslint": "^3.17.1", diff --git a/src/.vscode/settings.json b/src/.vscode/settings.json new file mode 100644 index 0000000..3b66410 --- /dev/null +++ b/src/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..0b3c8a6 --- /dev/null +++ b/src/README.md @@ -0,0 +1,26 @@ +# JavaScript II + +## Topics + +* recursion +* base case +* constructors +* `new` +* `prototype` +* `.bind`, `.call`, `.apply` +* `this` +* `class` +* methods +* inheritance +* prototype methods vs methods in the constructor (Methods that inherit via the prototype chain can be changed universally for all instances) +* class vs instance + +## Instructions + +* Fork and clone this repo. +* Run the command `npm i` to install needed node packages. +* Run the command `npm test ` to run the tests. (Example: `npm test prototype`) +* Work through the files and make the tests pass. +* Suggested order: `prototype.js`, `class.js`, `recursion.js`, `this.js`. +* When you are finished submit a pull request. +* Make commits often. A good practice would be to make a commit when you get a test, or set of tests, to pass. diff --git a/src/readme b/src/readme new file mode 100644 index 0000000..e69de29 diff --git a/src/recursion.js b/src/recursion.js index a6a6c13..bc37edf 100644 --- a/src/recursion.js +++ b/src/recursion.js @@ -3,8 +3,13 @@ const nFibonacci = (n) => { // fibonacci sequence: 1 1 2 3 5 8 13 ... // return the nth number in the sequence + if (n <= 1) { + return n; + } + return nFibonacci(n - 1) + nFibonacci(n - 2); }; + const nFactorial = (n) => { // factorial example: !5 = 5 * 4 * 3 * 2 * 1 // return the factorial of `n` @@ -15,11 +20,3 @@ const checkMatchingLeaves = (obj) => { // return true if every property on `obj` is the same // otherwise return false }; - -/* eslint-enable no-unused-vars */ - -module.exports = { - nFibonacci, - nFactorial, - checkMatchingLeaves, -}; diff --git a/yarn-error.log b/yarn-error.log new file mode 100644 index 0000000..1370a77 --- /dev/null +++ b/yarn-error.log @@ -0,0 +1,68 @@ +Arguments: + /usr/local/bin/node /usr/local/Cellar/yarn/1.5.1_1/libexec/bin/yarn.js test recursion.test.js + +PATH: + /Users/ericandrade/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +Yarn version: + 1.5.1 + +Node version: + 8.10.0 + +Platform: + darwin x64 + +npm manifest: + { + "name": "javascript-ii", + "version": "1.0.0", + "description": "JavaScript II", + "main": "index.js", + "scripts": { + "test": "eslint tests/*.test.js && eslint src/*.js && jest --verbose", + "test:watch": "npm test -- --watch" + }, + "author": "Ben Nelson", + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/LambdaSchool/javascript-ii.git" + }, + "devDependencies": { + "babel-jest": "^19.0.0", + "eslint": "^3.17.1", + "eslint-config-airbnb-base": "^11.1.3", + "eslint-plugin-import": "^2.2.0", + "jest": "^19.0.2", + "regenerator-runtime": "^0.10.3" + }, + "dependencies": { + "babel-preset-es2015": "^6.24.0", + "eslint-config-airbnb": "^14.1.0", + "eslint-plugin-jsx-a11y": "^3.0.2 || ^4.0.0", + "eslint-plugin-react": "6.9.0" + } + } + +yarn manifest: + No manifest + +Lockfile: + No lockfile + +Trace: + Error: Command failed. + Exit code: 1 + Command: sh + Arguments: -c eslint tests/*.test.js && eslint src/*.js && jest --verbose recursion.test.js + Directory: /Users/ericandrade/Desktop/JavaScript-II + Output: + + at ProcessTermError.MessageError (/usr/local/Cellar/yarn/1.5.1_1/libexec/lib/cli.js:186:110) + at new ProcessTermError (/usr/local/Cellar/yarn/1.5.1_1/libexec/lib/cli.js:226:113) + at ChildProcess. (/usr/local/Cellar/yarn/1.5.1_1/libexec/lib/cli.js:30281:17) + at emitTwo (events.js:126:13) + at ChildProcess.emit (events.js:214:7) + at maybeClose (internal/child_process.js:925:16) + at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) From 133a94a52697cb25b598889ee945e5d5d8c64ae9 Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 09:31:53 -0400 Subject: [PATCH 2/7] Factorial solution --- src/recursion.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/recursion.js b/src/recursion.js index bc37edf..5aee1a5 100644 --- a/src/recursion.js +++ b/src/recursion.js @@ -9,10 +9,15 @@ const nFibonacci = (n) => { return nFibonacci(n - 1) + nFibonacci(n - 2); }; - const nFactorial = (n) => { // factorial example: !5 = 5 * 4 * 3 * 2 * 1 // return the factorial of `n` + if (n < 0) { + return -1; + } else if (n === 0) { + return 1; + } + return (n * nFactorial(n - 1)); }; /* Extra Credit */ From a2597e87e9df4569edefca62a38970c604c71abe Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 10:30:55 -0400 Subject: [PATCH 3/7] first part of this complete. --- src/this.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/this.js b/src/this.js index f0f994c..874675a 100644 --- a/src/this.js +++ b/src/this.js @@ -16,7 +16,13 @@ class User { const me = new User({ username: 'LambdaSchool', password: 'correcthorsebatterystaple', -}); + checkPassword: function(n) { + if((this.password === n) + return true; + return false; + )}; +}; + const result = me.checkPassword('correcthorsebatterystaple'); // should return `true` @@ -34,6 +40,17 @@ const checkPassword = function comparePasswords(passwordToCompare) { // .call +const me = new User({ + username: 'LambdaSchool', + password: 'correcthorsebatterystaple', + checkPassword: function(n) { + if((this.password === n) + return true; + return false; + )}; +}; + + // .apply // .bind From 37215d905717e6c34133fc88c04d18a1cd24ef82 Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 10:44:24 -0400 Subject: [PATCH 4/7] completed this.js --- src/this.js | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/this.js b/src/this.js index 874675a..ecc6751 100644 --- a/src/this.js +++ b/src/this.js @@ -16,11 +16,9 @@ class User { const me = new User({ username: 'LambdaSchool', password: 'correcthorsebatterystaple', - checkPassword: function(n) { - if((this.password === n) - return true; - return false; - )}; + checkPassword(passwordToCompare) { + return this.password === passwordToCompare; + }; }; @@ -33,24 +31,40 @@ const checkPassword = function comparePasswords(passwordToCompare) { // use `this` to access the object's `password` property. // do not modify this function's parameters // note that we use the `function` keyword and not `=>` -}; // invoke `checkPassword` on `me` by explicitly setting the `this` context // use .call, .apply, and .bind +checkPassword(passwordToCompare){ + return this.password === passwordToCompare; +} + // .call const me = new User({ username: 'LambdaSchool', password: 'correcthorsebatterystaple', - checkPassword: function(n) { - if((this.password === n) - return true; - return false; )}; }; +checkPassword.call(me); // .apply +const me = new User({ + username: 'LambdaSchool', + password: 'correcthorsebatterystaple', + )}; +}; + +checkPassword.apply(me); + // .bind + +const me = new User({ + username: 'LambdaSchool', + password: 'correcthorsebatterystaple', + )}; +}; + +var newCheckPassword.bind(me); \ No newline at end of file From a2960796cd49fedc2dd2a3bd7756bc8c93551d40 Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 18:34:35 -0400 Subject: [PATCH 5/7] Class.js complete but with phantom error --- src/class.js | 34 ++++++++++++++++++++++++++++++++++ yarn-error.log | 4 ++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/class.js b/src/class.js index 1ec26ec..32ba604 100644 --- a/src/class.js +++ b/src/class.js @@ -7,6 +7,20 @@ // for a potential password that will be compared to the `password` property. // Return true if the potential password matches the `password` property. Otherwise return false. +class User { + constructor(options) { + this.email = options.email; + this.password = options.password; + } + + comparePasswords(potentialPassword) { + if (this.password === potentialPassword) { + return true; + } + return false; + } +} + // code here // Part 2 @@ -20,6 +34,26 @@ // property set on the Cat instance. // code here +class Animal { + constructor(options) { + this.age = options.age; + } + + growOlder() { + const olderAge = this.age + 1; + return olderAge; + } +} + +class Cat extends Animal { + constructor(catOptions) { + super(catOptions); + this.name = catOptions.name; + } + meow() { + return ('${this.name} meowed!'); + } +} /* eslint-disable no-undef */ diff --git a/yarn-error.log b/yarn-error.log index 1370a77..eb6017e 100644 --- a/yarn-error.log +++ b/yarn-error.log @@ -1,5 +1,5 @@ Arguments: - /usr/local/bin/node /usr/local/Cellar/yarn/1.5.1_1/libexec/bin/yarn.js test recursion.test.js + /usr/local/bin/node /usr/local/Cellar/yarn/1.5.1_1/libexec/bin/yarn.js test class.test.js PATH: /Users/ericandrade/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin @@ -55,7 +55,7 @@ Trace: Error: Command failed. Exit code: 1 Command: sh - Arguments: -c eslint tests/*.test.js && eslint src/*.js && jest --verbose recursion.test.js + Arguments: -c eslint tests/*.test.js && eslint src/*.js && jest --verbose class.test.js Directory: /Users/ericandrade/Desktop/JavaScript-II Output: From 7e5eb0897ce2bfc168076c94c86fee99f1bbdd57 Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 19:51:26 -0400 Subject: [PATCH 6/7] refactored class.js and this.js, but still getting errors that seem wrong. --- src/class.js | 2 +- src/this.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/class.js b/src/class.js index 32ba604..13e67c1 100644 --- a/src/class.js +++ b/src/class.js @@ -51,7 +51,7 @@ class Cat extends Animal { this.name = catOptions.name; } meow() { - return ('${this.name} meowed!'); + return ${this.name} ' meowed!'; } } diff --git a/src/this.js b/src/this.js index ecc6751..439d819 100644 --- a/src/this.js +++ b/src/this.js @@ -18,8 +18,8 @@ const me = new User({ password: 'correcthorsebatterystaple', checkPassword(passwordToCompare) { return this.password === passwordToCompare; - }; -}; + } +} const result = me.checkPassword('correcthorsebatterystaple'); // should return `true` From b460dbeea3e91f8f755c4e142279e79f1eb7820d Mon Sep 17 00:00:00 2001 From: BUDDHAPLEX Date: Thu, 22 Mar 2018 21:25:08 -0400 Subject: [PATCH 7/7] Refactored class.js and eliminated error. error still exists on this.js --- src/class.js | 2 +- src/prototype.js | 23 +++++++++++++++++++++++ src/this.js | 29 ++++++++--------------------- yarn-error.log | 4 ++-- 4 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/class.js b/src/class.js index 13e67c1..9524836 100644 --- a/src/class.js +++ b/src/class.js @@ -51,7 +51,7 @@ class Cat extends Animal { this.name = catOptions.name; } meow() { - return ${this.name} ' meowed!'; + return `${this.name} meowed!`; } } diff --git a/src/prototype.js b/src/prototype.js index e2494a6..2c5210d 100644 --- a/src/prototype.js +++ b/src/prototype.js @@ -49,6 +49,29 @@ hamsterHuey.destroy(); // returns 'Game object was removed from the game.' */ +// class GameObject { +// constructor (attributes){ +// this.createdAt = attributes.createdAt; +// this.dimensions = attributes.dimensions; +// } + +// destroy() { +// return 'Game object was removed from the game.'; +// } +// } + +// class NPC { +// constructor(attributes) { +// this.faction = attributes.faction; +// this.weapons = attributes.weapons; +// this.language = attributes.language; +// } + +// greet() { +// return '$' +// } +// } + /* eslint-disable no-undef */ module.exports = { diff --git a/src/this.js b/src/this.js index 439d819..9a0e7e5 100644 --- a/src/this.js +++ b/src/this.js @@ -16,11 +16,10 @@ class User { const me = new User({ username: 'LambdaSchool', password: 'correcthorsebatterystaple', - checkPassword(passwordToCompare) { - return this.password === passwordToCompare; - } -} - + checkPassword(altPassword) { + return this.password === altPassword; + }, +}); const result = me.checkPassword('correcthorsebatterystaple'); // should return `true` @@ -35,7 +34,8 @@ const checkPassword = function comparePasswords(passwordToCompare) { // invoke `checkPassword` on `me` by explicitly setting the `this` context // use .call, .apply, and .bind -checkPassword(passwordToCompare){ +const checkPassword = function +checkPassword(passwordToCompare) { return this.password === passwordToCompare; } @@ -44,27 +44,14 @@ checkPassword(passwordToCompare){ const me = new User({ username: 'LambdaSchool', password: 'correcthorsebatterystaple', - )}; -}; +}); checkPassword.call(me); // .apply -const me = new User({ - username: 'LambdaSchool', - password: 'correcthorsebatterystaple', - )}; -}; - checkPassword.apply(me); // .bind -const me = new User({ - username: 'LambdaSchool', - password: 'correcthorsebatterystaple', - )}; -}; - -var newCheckPassword.bind(me); \ No newline at end of file +const checkPasswordOne = checkPassword.bind(me); \ No newline at end of file diff --git a/yarn-error.log b/yarn-error.log index eb6017e..a2143fc 100644 --- a/yarn-error.log +++ b/yarn-error.log @@ -1,5 +1,5 @@ Arguments: - /usr/local/bin/node /usr/local/Cellar/yarn/1.5.1_1/libexec/bin/yarn.js test class.test.js + /usr/local/bin/node /usr/local/Cellar/yarn/1.5.1_1/libexec/bin/yarn.js test this.test.js PATH: /Users/ericandrade/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin @@ -55,7 +55,7 @@ Trace: Error: Command failed. Exit code: 1 Command: sh - Arguments: -c eslint tests/*.test.js && eslint src/*.js && jest --verbose class.test.js + Arguments: -c eslint tests/*.test.js && eslint src/*.js && jest --verbose this.test.js Directory: /Users/ericandrade/Desktop/JavaScript-II Output: