很多時候我們是這樣寫類,然後使用new建立物件的。
複製** **如下:
function person(name,age)
person.prototype=,
getname : function()
} vaobtxlihzxr p = new person('jack',25);
改成這樣的
複製** **如下:
function person(name,age)
this.name=name;
this.a
} person.prototype=,
getname : function()
} var p = person('jack',25);
注意該類較最上面的寫類方式中多了以下
複製** **如下:
if(!this.setname)
好,建立類的例項(物件)方式也變成了如下
複製** **如下:
var p = person('jack',25);
這種建立方式(函式呼叫)較上面的少了「new_」,new和空格,實際上是在類內部new了。而這樣方式每次建立物件可以減少4個byte。
如果把類內部的if判斷條件換成非prototype上的屬性,如this.name。程式會提示出錯:too much recursion
複製** **如下:
function person(name,age)
this.name=name;
this.age=age;
} person.prototype=,
getname : function()
} var p = person('jack',25);
本文標題: 使用隱藏的new來建立物件
本文位址:
C 用new來建立物件和非new來建立物件的區別
我們都知道c 中有三種建立物件的方法,如下 include using namespace std class a a int main 第一種和第二種沒什麼區別,乙個隱式呼叫,乙個顯式呼叫,兩者都是在程序虛擬位址空間中的棧中分配記憶體,而第三種使用了new,在堆中分配了記憶體,而棧中記憶體的分配和...
C 用new來建立物件和非new來建立物件的區別
我們都知道c 中有三種建立物件的方法,如下 include using namespace std class a a int main 第一種和第二種沒什麼區別,乙個隱式呼叫,乙個顯式呼叫,兩者都是在程序虛擬位址空間中的棧中分配記憶體,而第三種使用了new,在堆中分配了記憶體,而棧中記憶體的分配和...
使用new來建立動態陣列
使用new來建立動態陣列 1 如果程式只需要乙個值,則可能會宣告乙個簡單變數,因為對於管理乙個小型資料物件來說,這樣做比使用new和指標更簡單,儘管給人留下的印象不那麼深刻。通常,對於大型資料 如陣列 字串和結構 應使用new,這正是new的用武之地。例如,假設要編寫乙個程式,它是否需要陣列取決於執...