//原型方式-->重點prototype(是object擁有的乙個屬性,因此所有的物件都擁有這個屬性)創立物件
//此種方式建立物件不能傳遞引數,因為該建構函式體內是個空的。
function dog(){}
dog.prototype.name = "小毛";//屬性值還可以是陣列
dog.prototype.age = 21;
dog.prototype.get = function(name, age)
//new dog().get("野獸",24);
//另外一種用原型建立物件
function cat(){}
cat.prototype.name = new array();
cat.prototype.age = 3;
cat.prototype.get = function()
var cat1 = new cat();
cat1.name.push("張三");
cat1.name.push("李四");
cat1.age = 1;
cat1.get();
var cat2 = new cat();
cat2.get();
//age是number型別,是原型,它的值改變只是它的副本,並不會改變它本省。但是name是陣列型別的,它是引用型別,所以它的值會改變它本省。
//使用原型和建構函式的方法構建物件
//好處:即可共享原想物件中的方法,又可以通過構造方法建立物件的不通的屬性,一舉兩得。
function person(name, age)
person.prototype.get = function()
//new person("曹歡",21).get();
//動態原型構造物件
//這種構造出來的物件的屬性值可以改變,但是方法卻只例項化一次(用flag標誌來確定)
function dog(name, age)
dog.flag = true;
//alert(dog.flag);}}
var d1 = new dog("小紫",21);
var d2 = new dog("小花",22);
JS 物件 JS原型 原型鏈
參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...
JS原型物件的問題
原型模式最大的問題是由其共享的本性所導致的。我們知道,原型中所有的成員是被很多例項共享的,這種共享對於函式非常合適。對於那些包含基本值的屬性倒也說得過去,畢竟可以通過在例項上新增乙個同名的屬性來隱藏原型中對應的屬性 然而,對於包含引用型別值的屬性來說,問題就比較突出了。來看下面的 function ...
JS原型物件
原型prototype 將函式定義在全域性作用域中的缺點 1.會汙染全域性作用域的命名空間,如 函式functiona 那麼在全域性作用域中就不能再出現functiona這個命名了。2.定義在全域性作用域中不安全。因此,就用到了主角 原型 1.所有的函式都有原型物件 2.當函式以建構函式的形式呼叫時...