建立物件
1.工廠模式
function createperson(name,age,job){
var o = new object();
o.name = name;
o.age = age;
o.job = job;
o.sayname = function(){
alert(this.name);
return o;
var person1 = createperson("emily",21,"software engineer") ;
採用工廠模式雖然解決了建立多了相似物件的問題,但是卻沒有解決物件識別的問題(即怎樣知道乙個物件的型別)
2.建構函式模式
function person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayname = function(){
alert(this.name);
var person1 = new person("emily",22,"software engineer");
1. 沒有顯示的建立物件
2.直接將屬性和方法賦給了this物件
3.沒有return 語句
以這種方式呼叫建構函式實際上會經歷以下4個步驟:
1)建立乙個新物件;
2)將建構函式的作用域賦給新物件(this就指向了這個新物件);
3)執行建構函式中的**
4)返回新物件
缺點:每個例項都會有乙個方法,但是這些方法不是同乙個function的例項。函式也是物件,因此每次定義乙個函式,也就是例項化了乙個物件。
3.原型模式
function person(){
person.prototype.name = "emily";
person.prototype.age = 20;
person.prototype.job = "software engineer";
person.prototype.sayname = function(){
alert(this.name);
var person1 = new person();
屬性和方法,均放在原型中,而原型模式:共享屬性。
當建立乙個例項時候,會能夠訪問到原型中的屬性和方法,而該例項如果修改了原型中的屬性和方法,也會影響到其他的例項。
4. 組合使用建構函式模式 和 原型模式
function person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
person.prototype = {
constructor : person;
sayname : function(){
alert(this.name);
var person = new person("emily" , 22,"software engineer")
建構函式中定義例項屬性,原型中定義共有的屬性和方法。
JS物件導向 JS繼承方法總結
物件導向中,繼承相對是比較難的,即使看了很多文章,可能依然不明白,下面我談談我的理解。1.建構函式繼承 function p0 function children0 通過這種在子類中執行父類的構造函式呼叫,把父類建構函式的 this 指向為子類例項化物件引用,從而導致父類執行的時候父類裡面的屬性都會...
js物件導向
物件導向是相對於面向過程而提出的程式設計思想 核心在於通過這種方法的設計出來的程式不再是機械的按照設定的步驟去執行,而是按照需要的步驟去執行。舉個例子 乙個人要吃飯,如果用的面向過程的話就必須執行吃飯前的一切行為,而物件導向則可以跳過之前的環節!建構函式 所謂的工廠方式 用來構造抽象物件,通過呼叫建...
js物件導向
js物件導向 一 什麼是物件 物件可以看成乙個屬性的集合。對像一般有屬性和方法構成,方法的實質是函式,而屬性的實質是變數。二 什麼是物件導向 物件導向可以理解為不需要去了解對像的內部結構,就可以使用它。像我們的date 對像的方法可以獲取和設定時間,但我們並不了解其內部原理。三 物件導向 抽風機 抽...