2011-08-03 12 views
3

JavaScriptクラスのデフォルト/フォールバック機能を設定することはできますか?JavaScriptクラスのデフォルトの機能/値

この例では
var a = new function() { 

    this.b = function() { 
    return "B"; 
    } 

    return "A"; 
} 

、私は一人でalert(a)ためBalert(a.b())を実行し、Aを見てみたいと思います。あなたがオブジェクトのtoStringメソッドを上書きした場合

+0

なぜあなたは 'a = new function(){}'を使用していますか?それが何をしているのか分かりますか? 'a = {}'とほぼ同じです。 –

+0

@FelixKling私は彼がオブジェクトリテラルを作成したいと思っていますが、ロジックを持っていると思います。新しい関数(){}は基本的にそれです。私は実際の例がコンストラクタで実際のロジックを持っていると仮定します – Raynos

+0

@レイノス:そうかもしれません.... –

答えて

3
var a = new function() {  
    this.toString = function() { return "Four Loko comes in 8 different flavors."; }; 
    this.valueOf = function() { return "Four Loko comes in 8 different flavors."; }; 
    this.b = function() { return "Added! :3"; }; 
} 
alert(a); 
alert(a.b()); 

あなたはそれはあなたが望むものは何でも返すために取得することができます。

コンストラクタからリテラル値を返そうとしている可能性がありますが、コンストラクタからのみオブジェクトを返すことができます。

また.valueOf

+0

申し訳ありませんが、私は 'new'キーワードが欠けていました。全体のセットアップは、私には分かりにくいようです。オブジェクトリテラルはまあまあです。 –

1

ご質問や、あなたのサンプルコードは少し漠然としている上書きすることもできますが、これはあなたが探しているものかもしれません:あなたがしなければ良いだろう

function A() { 
    this.b = function() { 
     return "Added! :3"; 
    } 
} 

var a = new A(); 
alert(a.b()); 

これは次のようになります:

function A() {} 

A.prototype.b = function() { 
    return "Added! :3"; 
} 
関連する問題