屬於轉載,放在html文件裏面方面粘貼來下看
https://www.jianshu.com/p/86267fab4878
百度上搜到的地址,不知道是不是原地址
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> // 由代碼可以看出類實質上就是一個函數。類自身指向的就是構造函數。 // 所以可以認爲ES6中的類其實就是構造函數的另外一種寫法! class Person{ //定義了一個名字爲Person的類 constructor(name,age){ //constructor是一個構造方法,用來接收參數 this.name = name; //this代表的是實例對象 this.age=age; } say(){ //這是一個類的方法,注意千萬不要加上function return "我的名字叫" + this.name+"今年"+this.age+"歲了"; } } var obj=new Person("laotie",88); console.log(obj.say()); //我的名字叫laotie今年88歲了 // 1.在類中聲明方法的時候,千萬不要給該方法加上function關鍵字 // 2.方法之間不要用逗號分隔,否則會報錯 // 實際上類的所有方法都定義在類的prototype屬性上 Person.prototype.say=function(){ //定義與類中相同名字的方法。成功實現了覆蓋! return "我是來證明的,你叫" + this.name+"今年"+this.age+"歲了"; } var obj=new Person("laotie",88); console.log(obj.say()); //我是來證明的,你叫laotie今年88歲了 // 當然也可以通過prototype屬性對類添加方法 Person.prototype.addFn=function(){ return "我是通過prototype新增加的方法,名字叫addFn"; } var obj=new Person("laotie",88); console.log(obj.addFn()); //我是通過prototype新增加的方法,名字叫addFn // 還可以通過Object.assign方法來爲對象動態增加方法 Object.assign(Person.prototype,{ getName:function(){ return this.name; }, getAge:function(){ return this.age; } }) var obj=new Person("laotie",88); console.log(obj.getName()); //laotie console.log(obj.getAge()); //88 //constructor方法是類的構造函數的默認方法,通過new命令生成對象實例時,自動調用該方法。 class Box{ constructor(){ console.log("五月天還不來開演唱會,好煩啊"); //當實例化對象時該行代碼會執行。 } } var obj=new Box(); // constructor方法如果沒有顯式定義,會隱式生成一個constructor方法 // 所以即使你沒有添加構造函數,構造函數也是存在的 // constructor方法默認返回實例對象this,但是也可以指定constructor方法返回一個全新的對象,讓返回的實例對象不是該類的實例 </script> </body> </html>