物件導向:
使用物件時,只關注物件提供的功能,不關注內部實現的細節
特點:抽象(多型);封裝;繼承
組成:方法----函式 屬性---變數
工廠模式:原料;加工;出廠
問題:沒有new 每個物件都創造自己的函式,浪費資源(相當於每次都建立了乙個物件)
使用new操作符,替我們建立了乙個空物件;通多this新增屬性;最後替我們返回了這個物件
原型:擴充套件系統物件的方法;
建構函式首字母大寫;
原型的優先順序:屬性大於方法
hasownproperty : 看是不是物件自身下面的屬性
constructor : 檢視物件的建構函式
利用tostring做型別的判斷 : object.prototype.tostring.call(arr) == '[object array]'
物件導向的程式編寫原則:把onload中不是賦值的語句放到單獨函式中
;不能有函式巢狀;但是可以有全域性變數
this出錯;事件;定時器(在套一層函式;-this=this)
json方式的物件導向;
命名空間:var obj ={}
obj.common=,
addclass:function(){}
}繼承:
(1)拷貝繼承: 通用型的 有new或無new的時候都可以
屬性繼承;呼叫父級的建構函式;通過call改變this指向;
方法繼承:son.prototype=parent.protptype(這種寫法;子類改變,會影響父類,物件引用問題) for in 迴圈複製
instance of: 檢視物件是否是某各類的例項
系統物件:
本地物件(非靜態物件):object,array,string,date
內建物件(靜態物件):math ,global ;不用new直接使用
宿主物件:document;window
包裝物件
: 基本型別都有自己對應的包裝物件 : string number boolean
基本型別會找到對應的包裝物件型別,然後包裝物件把所有的屬性和方法給了基本型別,然後包裝物件消失
(2)類式繼承: new建構函式
function aaa()
aaa.prototype.showname = function();
function bbb()
var f = function(){};
f.prototype = aaa.prototype;
bbb.prototype = new f();
bbb.prototype.constructor = bbb; //修正指向問題
(3)無new的物件
function cloneobj(obj);
f.prototype = obj;
return new f();
}元件化開發:
function extend(obj1,obj2)
}2.function drag(),
toup : function(){} };
}3.drag.prototype.init = function(opt);
document.onmouseup = function();
return false;
};};
drag.prototype.fndown = function(ev);
drag.prototype.fnmove = function(ev);
drag.prototype.fnup = function();
自定義事件:讓函式具備事件的某些特性:
主動觸發自定義事件:函式呼叫
繫結事件的相容性寫法:function bindevent(obj,event,fn)
obj.listeners[event]=obj.listeners[event]||
obj.listeners[event].push(fn)
if(obj.addeventlistener)else
}主動觸發自定義事件函式:
function fireevent(obj,events)
}jq中主動觸發:$(this).trigger(「」)
物件導向繼承
using system class class1 class virtualclass class hiddenclass virtualclass class overrideclass virtualclass 結果為 父類 繼承類using system class class1 class...
物件導向 繼承
在原有物件的基礎上,略作修改,得到乙個新的物件,不影響原有物件的功能。即子類不影響父類,子類可以繼承父類的一些功能 復用 function createperson name,createperson.prototype.showname function var p1 new createpers...
物件導向 繼承
什麼是繼承 子類可以繼承父類共有的屬性和方法。繼承關鍵字是 extends 繼承的優點 實現類的重用,減少 的冗餘。package am 人類 public class people package am 學生類 public class student extends people package...