• ベストアンサー

TypeError: Object #has no

・TypeError: Object # has no method エラーになります ・なぜでしょうか? ・動くコードを知りたい、というより、なんでこれで駄目なのか教えてください function Hoge(area) {}; Hoge.getArea = function() { alert('こんにちは' + area); } var hoge = new Hoge('東京'); hoge.getArea(); TypeError: Object #<Hoge> has no method 'getArea'

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

これなら動くと思います。 「prototype」をぐぐる。 function Hoge(area) { this.area = area; }; Hoge.prototype.getArea = function() { alert('こんにちは' + this.area); } var hoge = new Hoge('東京'); hoge.getArea();

re97
質問者

お礼

回答ありがとうございましたー

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • jsがアップロードしても反映されない。エラーが出る

    デスクトップ上でwebサイトをTwitter bootstrapのフレームワークを使いながら構築しました。ローカル上は何の問題もなかったのですが、サーバーにアップロードした途端に、jsが全く動きません。 アクセス権は大丈夫です。 以下のエラーがサーバーにアップした途端にでるようになりました。 bootstrap.min.js:1 Uncaught TypeError: undefined is not a function index.html:175   Uncaught TypeError: Object [object Object] has no method 'tooltip' デスクトップでは問題なくbootstrapのjsが動作しましたが、サーバーに上げるとダメです。 なぜだかさっぱりわかりません。 助けてください

    • 締切済み
    • CSS
  • クラス内からインスタンス先の名前を参照する事は出来るのでしょうか

    クラス内からインスタンス先の名前を参照する事は出来るのでしょうか 例えば function hoge(){  this.dispname=function{   alert("xxxxx");  } } を  var fuga1=new hoge();  var fuga2=new hoge(); とインスタンスして、  fuga1.dispname();  fuga2.dispname(); とした時 xxxxにそれぞれ'fuga1'、'fuga2'といった名前 を取得してセットすることは可能でしょうか? 逆なら、  alert(fuga1.constructor.name); //Alerts "hoge"  alert(fuga1.constructor.name); //Alerts "hoge" と出来る。 ※インスタンスする時に名前を渡すしかないんでしょうか。  var fuga1=new hoge('fuga1');みたいに...

  • javascriptでオブジェクトのメソッドを使う

    JavaScriptでnewでオブジェクト化したクラス(?)のメソッド、フィールドを利用する方法を教えて下さい。 javascriptにもオブジェクト化という考え方があると聞いたのですが、 例えば、Javaでいうsetter getterのようなメソッドを作り、使用することはできるのでしょうか? 下記のようなコードを実行したところ Uncaught TypeError: Object #<mousePosi> has no method 'setPara' というエラーが出てしまい、setParaというメソッドはない。と言われてしまいます。 しかし、mousePosi()をオブジェクト化することはできているようなので、 setParaとgetParaを使えるのではないかとおもいました。 どなたかアドバイス下さい。お願いします。 ------------------------------------------------------------------------------------------------- (function LineMain() { console.log("マウスの位置座標を表示"); // console.log("X座標=" + mymouse.x + ",Y座標=" + mymouse.y); //マウスムーブでeventControlを呼び出し addEventListener("mousemove", eventControl, false); function eventControl(event) { var event = event; var myMousePosi = new mousePosi(); myMousePosi.setPara(event); // console.log("X座標=" + obj.getMouse().x + ",Y座標=" + obj.getMouse().y); } function mousePosi() { var paraMouse = { x : 0, y : 0 }; function setPara(event) { this.paraMouse.x = event.x; this.paraMouse.y = event.y; } function getPara() { return this.paraMouse; } } })();

  • javascriptのカプセル化について

    ただいま、javascriptの勉強をしている初学者であります。 テストプログラムを作ってみたのですが、思うように動作せず、理由が分からなくて悩んでいます。 オブジェクト指向のように、パブリックとプライベートの関数をそれぞれ作り、動作させようとしたのですが、method1()、method2()は続けて呼び出せるのですが、method3()を呼び出すことなく、プログラムが終了してしまいます。 ご指南よろしくお願いします。 var test1 = function(){ this.method1 = function(){ alert("method1"); method2(); }; var method2 = function(){ alert("method2"); this.method3();//呼ばれない? }; this.method3 = function(){ alert("method3"); }; };

  • IEでDOMインターフェースを拡張したい

    IEでDOMインターフェースを拡張したい NodeList.prototype.hoge=function(){…} のように、メソッドやプロパティを拡張しようとしたところ、IEでつまづいてしまいました…。 上記のようなコードの場合、「NodeListは宣言されていない…」のようなエラーが表示されます。また、 var NodeList としてみたところ、今度は「'prototype'はNullまたはオブジェクトではありません」と表示されました。 そこで、各DOMインターフェースを alert(Document); alert(Element); … のようにして調べてみたところ、どれも[object]が返ってきました。(もちろんjavascriptコアインターフェースでは期待通りの値が返ってきました。) それで結局のところ、IEでDOMインターフェースを拡張するにはどうすればいいのでしょうか?よろしくお願いします。

  • <object data="">の挙動について

    お世話になります 何故表示がされなくなるのか理由が分からないのでお分りになられる方いらっしゃいましたら教えていただきたいのですが・・・ 用意したファイルは ┣ test.html    ┏ a.html ┗ hoge(フォルダ)╋ b.html             ┣ c.html             ┣ d.html             ┗ e.html ソースはこちら <script type="text/javascript"><!-- window.onload=function() { var SPANS = new Array(); SPANS = document.getElementsByTagName("span"); for(var i=0;i<SPANS.length;i++) { SPANS[i].onmouseover = function() { this.style.backgroundColor = "lightcyan"; } SPANS[i].onmouseout = function() { this.style.backgroundColor = ""; } SPANS[i].onclick = function() { Object(this.innerHTML); } } } function Object(str) { h = document.getElementById("Object"); h.innerHTML = "<object data='./hoge/"+str+".html' type='text/html'><\/object>"; } //--></script> <style type="text/css"><!-- object { width:800px; height:400px; margin:0px; } span { display:block; float:left; width:79px; height:30px; text-align:center; margin:0px; cursor:pointer; } --></style> </head> <body> <div> <div id="scriptcontents"> <span>a</span> <span>b</span> <span>c</span> <span>d</span> <span>e</span> <div style="clear:both;"></div> </div> <div id="Object"></div> <span>をクリックしたら<object>を使用して別のhtmlファイルを表示させてるのですが普通にしていたら表示はされているのですが以下の手順を踏むとOperaで表示されなくなるのですが理由が分かりません(--;) 1).test.htmlを表示(これは5つとも自由に閲覧できます) 2).hogeフォルダ内の5つのファイルを名前を変えたりしてファイルの存在を削除 3).test.html試用(対象ファイルが無いので当然<object>内はNot Foundページになります) IE,Firefoxは何度押してもNot Foundページが出るのですがOperaは2回目以降反応無しになる(何も表示されない)) 4).hogeフォルダ内の5つのファイルを復元 5).test.html試用(IE,Firefoxは元通りになるのですがOperaは何も反応しないまま) なぜOperaは一度Not Foundページが表示されたら次から無反応になってしまうのでしょうか? その表示されなくなった名前のファイルはもう2度と使用することはできないのでしょうか?

    • ベストアンサー
    • HTML
  • C#のキャストについて(object→byte)

    いつもお世話になっております。C#初心者です。 「メソッドの引数として渡された値をリスト型の配列に格納する」という課題に取り組んでいますが、 変数のキャストで実行時にエラーが発生し、頭を悩ませています。 作成したコードは以下のようになっています。 public class TestClass {  private List<byte> hogeList = new List<byte>();  public void TestMethod( object hoge )  {   hogeList.Add( (byte)hoge ); ← (*)  } } 上記のメソッドをMain関数から TestClass test = new TestClass(); test.TestMethod(5); として実行すると、「hogeList」に「5」が格納される、といった動作にしたいと考えています。 しかしながら、ビルドは通るのですが、実行すると(*)の位置で止まり、 「指定されたキャストは有効ではありません。」 というメッセージが表示されます。 そこで質問なのですが、object型からbyte型にキャストする場合にはどのような記述の仕方がありますでしょうか? ご教授よろしくお願いいたします。

  • オブジェクトの中で呼び出される順番とデフォ引数?

    ・意味が分からないコードがあるので教えてください ■コード var arg; var obj = {  hoge : function( arg ) {   var hoge = function(arg){    return function() {    }   }(arg);   hoge();  } } ■質問 ・この時、obj.hoge(arg);と書いたら、どういう処理が走るのでしょうか? ・初めに実行されるのは? 無名関数部分? それともhoge()? ・hoge()を実行する際、引数指定していないので、引数は渡らない?

  • 下記コードのようなオブジェクトとかprototypeとかを理解するヒントを教えてください!

    <html> <head> <meta charset="utf-8"> </head> <body> <script type="text/javascript"> var hoge = function(){ //▼ function testFunc(n){ } testFunc.prototype.init = function(c){ alert(c); }// end func return{ testFunc:testFunc } }(); var u = new hoge.testFunc(); u.init("あああ"); </script> </body> </html> ---------------------------------------------------- ここ数日いろいろ弄っているのですが、 いまいちピンと来ない感じです。 何か、参考になるようなスクリプトやポイントなどありましたら、 ご紹介いただけると幸いです。 よろしくお願いいたします。

  • 下記コードですが、なぜtrace出来ないか、わかりますか?

    下記コードですが、なぜtrace出来ないか、わかりますか? ----------------------------------------------------------------------- var bmpData:BitmapData = new BitmapData(100,100,true,0xff000000); var bmp:Bitmap = new Bitmap(bmpData,PixelSnapping.AUTO,true); addChild(bmp); bmp.addEventListener(MouseEvent.CLICK,hoge); function hoge(e){ trace('なぜか無反応!'); } ----------------------------------------------------------------------- よろしくお願いします。

    • ベストアンサー
    • Flash