質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

233閲覧

以下のモジュールの違いについて

_beg

総合スコア19

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/01/12 09:22

node.jsについて学習を始めています。
モジュールというものを学んでいるのですが、以下2つのコードの違いがわかりません。

javascript

1exports.add = function(val1, val2) { // 1 2 return val1 + val2; 3} 4 5exports.sub = function(val1, val2) { 6 return val1 - val2; 7}

Javascript

1var Hoge = function(){} 2 3Hoge.prototype.add=function(val1, val2) { 4 return val1 + val2; 5} 6 7Hoge.prototype.sub=function(val1, val2) { 8 return val1 - val2; 9} 10 11var hoge = new Hoge(); 12module.export = hoge;

どちらもrequireして"変数.add" "変数.sub"として呼び出すので同じではないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/12 09:58

どこで「違う」という情報を得たのでしょうか。そこになにも解説はなかったのでしょうか。
_beg

2020/01/12 09:59

代入不可かどうか、とは書いてあったのですがよくわからなくてですね。
m.ts10806

2020/01/12 10:07

それがどこに書いてあったのか提示されないとその説明の正当性や質問者さんの理解度ははかれませんし、この質問で何が問題かというのも伝わりませんので。
guest

回答1

0

ベストアンサー

"変数.add" "変数.sub"
使い方は同じですが、メソッドの所在が違います

Hogeの場合

{add: ƒ, sub: ƒ, constructor: ƒ} add: ƒ (val1, val2) sub: ƒ (val1, val2) constructor: ƒ () length: 0 name: "Hoge" arguments: null caller: null prototype: {add: ƒ, sub: ƒ, constructor: ƒ} __proto__: ƒ () [[FunctionLocation]]: lesson4-2.js:23 [[Scopes]]: Scopes[3] __proto__: Object

exportsの場合

{constructor: ƒ} constructor: ƒ () add: ƒ (val1, val2) sub: ƒ (val1, val2) length: 0 name: "exports" arguments: null caller: null prototype: constructor: ƒ () add: ƒ (val1, val2) sub: ƒ (val1, val2) length: 0 name: "exports" arguments: null caller: null prototype: {constructor: ƒ} __proto__: ƒ () [[FunctionLocation]]: lesson4-2.js:37 [[Scopes]]: Scopes[3] __proto__: Object __proto__: ƒ () [[FunctionLocation]]: lesson4-2.js:37 [[Scopes]]: Scopes[3] __proto__: Object

exports で"変数.add" "変数.sub"使用する際にconstructorにメソッドを探しに行きましたがHogeの場合は必要ありません

投稿2020/01/12 10:04

harinezumi.py

総合スコア282

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問