1. 程式人生 > 其它 >Javascript prototype

Javascript prototype

 原型 prototype
1.我們所創造的每一個函式,解析器都會向函式中新增一個屬性prototype
-這個屬性對應著一個物件,這個物件就是我們所謂的原型物件,
-如果函式作為普通函式呼叫prototype沒有任何作用
-當函式以建構函式的形式呼叫,他所建立的物件中都會有一個隱形的屬性
-指向該建構函式的原型物件,我們可以通過__proto__來訪問該屬性
-原型物件就相當於一個公共的區域,所有同一個類的例項都可以訪問到這個原型物件
-我們可以將物件中共有的內容,統一設定到原型物件中
-當我們訪問一個物件的屬性或方法時,它會先在物件自身中尋找,如果有則直接使用,
-如果沒有則會去原型物件中尋找,如果找到則直接使用
-以後我們建立建構函式時,可以將這些物件共有的屬性和方法,統一新增到建構函式的原型物件中
-這樣不用分別為每一個物件新增,也不會影響到全域性作用域,就可以使每一個物件都具有這些屬性和方法了

function Person(){

}
function MyClass(){

}

//向MyClass的原型中新增屬性a
MyClass.prototype.a=123;

//向MyClass的原型中新增一個方法
MyClass.prototype.sayHello=function(){
alert("hello");
}

var mc=new MyClass();
var mc2=new MyClass();

console.log(mc.__proto__==MyClass.prototype);
console.log(Person.prototype==MyClass.prototype);

向mc中新增a屬性
mc.a="我是mc中的a";
console.log(mc2.a);
mc.sayHello();