2016-06-22 5 views
-1
function Person(firstName = "John", lastName = 'Doe', age = 0, gender = 'Male') { 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.age = age; 
    this.gender = gender; 
    this.sayFullName = function() { 
     return this.firstName + " " + this.lastName 
    }; 
} 

Person.prototype.greetExtraTerrestrials = function(raceName) { 
    return `Welcome to Planet Earth ${raceName}`; 
}; 

このコードで何が問題になっていますか? greetExtraTerrestrialsというクラスメソッドを作成しませんか?クラスメソッドの作成

+1

どうしたらうまくいかないのですか?エラーメッセージとは何ですか?問題文がなければ、すべてのコードは正しいです。 – Bergi

答えて

1

すると、実際にそれが動作しますが、まずあなたがのインスタンスを作成する必要があり、プロトタイプにその機能を置く

Person.greetExtraTerrestrials = function(raceName) { 
    return `Welcome to Planet Earth ${raceName}`; 
}; 

のように、クラス自体にそれを置き、

Person.greetExtraTerrestrials('ABC'); 
+0

完璧。ありがとうございました! – Michael

+0

@Michael Welcome –

0

ようにそれを呼び出すことはありません。人がそのメソッドを呼び出すことができます。たとえば:

var john = new Person("John"); 
console.log(john.greetExtraTerrestrials("predator")); 
1

あなたは両方を行うことができます!

class Person(...) { 
    ... 
} 

Person.myFunction = function(val) { // This is a public function 
    return val; 
} 

Person.prototype.myFunction = function(val) { // This is a private function 
    return val; 
} 

の差がどのようにアクセスことです。

アクセス公共機能:

var r = Person.myFunction("Hello!"); 
console.log(r); 

アクセスプライベート機能:このquestion

var person1 = new Person(...); 
var r = person1.myFunction("Hello!"); 
console.log(r); 

を参照してください。

関連する問題