《JavaScipt高階程式設計》總結五

2021-07-23 08:38:33 字數 2667 閱讀 7376

物件:一組無序的屬性集合,其屬性可以包括基本值、物件或函式。物件的每個屬性或方法都對應乙個名字,而這個名字都對映到乙個值。每個物件都是基於乙個引用型別建立的。

var persion = new

object(); //建立乙個object例項

person.name = "grace";

persopn.sayname = function

() var person2 =

};function

createperson

(name) ;

return o;

}createperson("gray");

function

person

(name)

} var per = new person("gray");

function

per(name)

function

sayname

()

我們建立的每個函式都有乙個prototype屬性,這個屬性是乙個指標,指向乙個物件,而這個物件的用途可以包含由特定型別的所有例項共享的屬性和方法

可以把物件共享的方法屬性寫在原型中,但是例項不能重寫原型中的值。會遮蔽原型中儲存的同名屬性,阻止我們訪問原型中的那個屬性,但不會修改那個屬性。

function

person

() {};

person.prototype.name = "grace";

var p1 = new person();

var p2 = new person();

p1.name = "gray";

alert(p1.name); //gray

alert(p1.hasownproperty("name")); //true --> 來自例項

alert(p2.name); //grace

delete p1.name;

alert(p1.name); //grace

alert(p1.hasownproperty("name")); //false --> 來自原型

alert("name"

in p1); //true --> 訪問到給定的屬性返回true,無論存在於例項還是原型中

function

hasprototypeproperty

(obj,name)

繼承

ecmascript只支援實現繼承,而且其實現繼承主要依靠原型鏈來實現。其基本思想是利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。

function

parent

() parent.prototype.getsubvalue = function

() function

child

() //繼承parent

child.prototype = new parent();

var ins = new child();

alert(ins.getsubvalue()); //true

原來存在於parent例項的所有屬性和方法,現在也存在於child.prototype中了。因為我們沒有使用child預設提供的原型,而是給他換了乙個新原型,這個新原型就是parent的例項。

我們可以說ins是object,parent,child中任何乙個型別的例項。

*子型別有時候要重寫超型別中的某個方法或新增方法,給原型新增方法的**一定要放在替換原型的語句之後。

function

person

() function

child

() var s1 = new child();

s1.push('yellow');

alert(s1.color); //green,blue,red,yellow

var s2= new child();

alert(s2.color); //green,blue,red

但是在超型別的原型中定義的方法,對子型別而言也是不可見的,所以一般會採用組合繼承。使用原型鏈實現對原型屬性和方法的繼承,而通過接通建構函式來實現對實力屬性的繼承。這樣,即通過在原型上定義方法實現了函式的復用,又能夠保證每個例項都要他自己的屬性。

function

person

(name)

person.pototype.getname = function

() function

child

(age) ;

child.prototype = new parent(); //繼承方法

child.prototype.constructor = child;

javascipt模組化程式設計 速記

模組化 1 汙染全域性變數,無法看出依賴關係 function m1 function m2 2 物件封裝,內部屬性容易被外部修改 var module m2 function module.m1 module.count 3 外部修改內部屬性 3 立即執行函式,放大模式.module可能未定義,需...

《JavaScript高階程式設計》總結四

一 function型別 每個函式都是function型別的例項。而且函式是物件,因此函式名實際上是指向函式物件的指標,不會與某個函式繫結 function add a,b var sum function a,b 解析器會率先讀取函式宣告並加到執行環境中,函式宣告提公升。函式表示式則必須等到解析器...

C 高階程式設計學習1 總結

多看,多練 多寫 程式是寫出來的 1.程式集 打包的類,類的訪問級別 public 公共的 private 私有的 protected 子類訪問 internal 預設 自己寫程式集 新建類庫 生成 bin debug dll檔案 新增引用 程式集不能a b b a 不能相互引用 單向引用 exe,...