屬性分為:資料屬性和訪問器屬性。都有四個描述其行為的特性。
若採用物件字面量,或者new object()定義的物件屬性。上述1,2,3屬性預設值為true。
若採用object.defineproperties()
,或者object.defineproperty()
建立乙個新的屬性。上述1,2,3屬性預設值為false。若是重新定義乙個已有的屬性,則無此限制。
function
person
(name, age)
person.prototype =
console.
log(person.prototype)
;
預設的,constructor屬性是不可列舉的,上述重寫後,會變為可列舉的。因此,應該如下設定:
object.
defineproperty
(person.prototype,
'constructor'
,)
function
person
(name, age)
person.prototype =
const obj =
newperson
('ha',12
);
建構函式模式用於定義例項自己的屬性,原型模式用於定義共享方法和共享屬性。
注意:該組合模式,可以解決原型模式中原型中含有引用型別值的問題。將屬性值為引用型別的屬性放在建構函式中。
function
person
(name, age)
person.prototype =
}const person1 =
newperson
('ha',12
);
function
car(owner)
}function
person
(name, age)
person.prototype =
newcar()
const person1 =
newperson
('ha',12
);
兩種方法:
function
parent
(height)
function
child
(name, age, height)
function
parent
(name)
parent.prototype.
sayname
=function()
function
child
(name, age)
child.prototype =
newparent()
; child.prototype.constructor = parent;
child.prototype.
sayage
=function()
const instance1 =
newchild
('ha',12
);
/**
* @description: 寄生組合式繼承
* @param child 子類建構函式, parent 父類建構函式
* @return:
* @author: huangan
*/function
inheritprototype
(child, parent)
理解物件導向
三個基本特徵 封裝,繼承,多型 封裝 將物件的實現細節隱藏起來,然後通過一些公用方法來暴露該物件的功能 使用訪問控制符 private default protected public private 當前類訪問許可權 default 包訪問許可權 protected 包 子類 public 公共訪...
理解物件導向
要理解物件導向。則要知道類和物件的關係。類是具備某些共同特徵的實體的集合 把資料和對資料的操作方法放到一起,相互依存的集合就叫做物件。物件的抽象是類,類的具體化就是物件,也可以說類的例項是物件。比如在現實世界中,人類就是乙個類,具體到實體的某乙個人,這個人就是人類這個類中具體化的乙個物件。而這個人的...
物件導向理解
物件導向的概念 理解物件導向首先要理解類的概念,通過類可以建立多個具有相同屬性和方法的物件。但在ecmascript當中並沒有類的概念,因此它的物件也與給予類的語言中的物件有所不同。物件理解 1.建立自定義物件 就是建立乙個object的實力,然後再為它新增屬性和方法,如下所示。var person...