使用隱藏的new來建立物件

2022-10-06 21:39:17 字數 930 閱讀 1661

很多時候我們是這樣寫類,然後使用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的用武之地。例如,假設要編寫乙個程式,它是否需要陣列取決於執...