除了undefind,number,string,boolean是簡單的值型別,其他的null,object,function都是物件
函式有prototype屬性,它是物件,是函式屬性和方法的集合
每個物件都有乙個__proto__屬性(隱式原型),它指向建立這個物件的函式的原型
函式也是一種物件:object()函式是new function()建立的,所以他的__proto__也指向fuction.prototype
建構函式模式
function person(name,age)
}複製**
原型模式
person.prototype.name="huangbin";
person.prototype.sayname = function()
var person1 = new person();
person1.sayname();//huangbin
var person2 = new person();
alert(person1.sayname==person2.sayname)//true```
複製**
[[prototype]]指標指向建構函式的原型物件,在firefox、safari、chrome中有**__proto__屬性可以訪問它**
person.prototype.constructor指向person
person.prototype.isprototypeof(person1)是判斷某個建構函式的原型物件是不是例項物件指向的
object.getprototypeof():是返回例項物件的指向建構函式原型的指標([[prototype]])
person.hasownproperty("name")是判斷屬性是否來自例項
要獲取物件中可列舉的屬性,可使用object.keys(obj)方法
想要獲得所有例項的屬性,無論是否可列舉,object.getownpropertynames(obj)
當使用for-in獲取物件列舉屬性時要用hasownproperty來判斷:判斷屬性是否存在當前物件中,而不是原型物件中,當在類或者建構函式中沒把屬性指定到this上,那麼該屬性就會自動掛載到原型物件上
es6中的class寫法會導致屬性不可列舉object.keys
a instanceof b: obj是否在建構函式的原型鏈上,a沿著_proto_、b沿著prototype如果能指向乙個物件,就返回true 1.
關於函式中的this
var obj1=);
} f(); }}
obj1.fn();
複製**
關於變數提公升
原型鏈: 訪問乙個物件的屬性時,如果在基本屬性中找不到,就會沿著_prototype_這條原型鏈去找
閘道器知多少
閘道器 gateway 顧名思義,就是乙個網路到另乙個網路的關口。維基百科對閘道器的定義為 在計算機網路中,閘道器 gateway 是 其他伺服器通訊資料的伺服器,接收從客戶端傳送來的請求時,它就像自己擁有資源的源伺服器一樣對請求進行處理。但是,很多時候,我們會將路由器和閘道器認為是同乙個概念。其實...
遍歷知多少
語法 for var arr 1,2,3 for var i 0 i arr.length i for.of.for var i of arr for.in.for var i in arr foreach arr.foreach item,index,arr map arr.map value,i...
軟體文件知多少?
如今,軟體開發越來越複雜,軟體功能也越來越豐富。而幾乎所有成熟的商業軟體,都是靠乙個開發團隊齊心協力的血汗結晶。羅馬不是一天建成的!當我們震撼於microsoft windows的驚世巨著的同時,也道聽途說了微軟公司軟體工程是如何的完善規範。的確,集數百名員工幾年的共同努力之大成,軟體專案管理的成敗...