javascript建構函式2
阿新 • • 發佈:2022-04-13
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 建立一個Person建構函式 * - 在Person建構函式中,為每一個物件都添加了一個sayName方法, * 目前我們的方法是在建構函式內部建立的, * 也就是建構函式每執行一次就會建立一個新的sayName方法 * 也是所有例項的sayName都是唯一的。 * 這樣就導致了建構函式執行一次就會建立一個新的方法, * 執行100次就會建立100個新的方法,而100個方法都是一摸一樣的 * 這是完全沒有必要,完全可以使所有的物件共享同一個方法 */ function Person(name , age , gender){ this.name = name; this.age = age; this.gender = gender; //向物件中新增一個方法 //this.sayName = fun; } //將sayName方法在全域性作用域中定義 /* * 將函式定義在全域性作用域,汙染了全域性作用域的名稱空間 * 而且定義在全域性作用域中也很不安全 */ /*function fun(){ alert("我是:"+this.name); };*/ //向原型中新增sayName方法 Person.prototype.sayName = function(){ alert("我是:"+this.name); }; //建立一個Person的例項 var per = new Person("張三",18,"男"); var per2 = new Person("李四",28,"男"); per.sayName(); per2.sayName(); //console.log(per.sayName == per2.sayName); </script> </head> <body> </body> </html>