2016-09-18 19 views
-1

ここに私のコードです 私は2つのクラスを持っています 1. 1つの機能を最初に持つ帳簿()。 2.機能のないサプライヤ。javascript内の子クラス内の親クラス関数を呼び出す方法

私はサプライヤクラス内でfirst()関数を呼び出したいと思います。事前に

https://gyazo.com/bea7ef497b58d390e279d3e2ea668431

var ledger = function(){}; 
ledger.prototype = { 

    first : function(){ 
     alert('first function is being called!'); 
    } 
} // END OF ledger CLASS 

var supplier = function(){} 
supplier.prototype = { 

    first(); 

} // END OF supplier CLASS 

jQuery(function(){ 

    // INHERITANCE 
    supplier.prototype = create.Object(ledger.prototype); 

}); 

おかげで必要とされている投稿質問の

+0

99%は、[MCVE] に関連するだろうのJavaScript/jQueryの、CSS、およびHTMLを投稿してください持っていますあなたの質問。次のサービスのいずれかまたはすべてを使用してデモを作成します。 [Plunker.co](http://plnkr.co/)、 [jsFiddle.net](https://jsfiddle.net/)、 [CodePen。 io](https://codepen.io/)、 [JS Bin](https://jsbin.com/) またはスニペット(7番目のアイコンはテキストエディタのツールバーまたはCTRL + Mにあります)。 – zer00ne

答えて

2
var Ledger = function() {}; 

Ledger.prototype.first = function() { 
    console.log("First!"); 
}; 

var Supplier = function() { 
    Ledger.call(this); 
}; 

Supplier.prototype = Object.create(Ledger.prototype); 
Supplier.prototype.constructor = Supplier; 

Supplier.prototype.second = function() { 
    console.log("Second!"); 
    this.first(); 
}; 

var supplier = new Supplier(); 

// First! 
supplier.first(); 

// Second! 
// First! 
supplier.second(); 

console.log(supplier instanceof Ledger); // true 
console.log(supplier instanceof Supplier); // true 
+0

うわー!!問題は解決されました。 ありがとう。 – Vipin

+0

次のhttps://jsfiddle.net/d8put1cu/ – Vipin

+1

@Vipinはいをご覧ください。まず、 'prototype'にオブジェクトを代入することはできません。そうしないと、以前の内容が上書きされます。それでもやりたいのであれば、 'Object.assign()'を使って前のコンテンツを保持することができます。次に、 'Object.create()'の後に 'second()'メソッドを実装する必要があります。私はあなたのコードを変更し、今それが動作します。見てください:https://jsfiddle.net/LLczxj8L/ – felipeptcho

関連する問題