js中的new命令

2021-10-08 21:32:19 字數 960 閱讀 3184

function

_new

(/* 建構函式 */ constructor,

/* 構造函式引數 */ params)

// 例項

var actor =

_new

(person,

'張三',28

);

函式內部可以使用new.target屬性。如果當前函式是new命令呼叫,new.target指向當前函式,否則為undefined

functionf(

)f()

// false

newf()

//true

使用這個屬性,可以判斷函式呼叫的時候是否使用new命令。

functionf(

)}f(

)// uncaught error:請使用 new 命令呼叫!

上面**中,建構函式f呼叫時,沒有使用new命令就會丟擲錯誤。

建構函式作為模板,可以生成例項物件。但是,有時拿不到建構函式,只能拿到乙個現有的物件。我們希望以這個現有的物件作為模板,生成新的例項物件,這是就可以使用object.create()方法。

var person1 =};

var person2 = object.

create

(person1)

;person2.name // 張三

person2.

greeting()

//hi!i'm 張三

上面**中,物件person1person2的模板,後者繼承了前者的屬性和方法。

關於js 中的new

new 操作符 new操作符的作用 new 操作符會返回乙個物件 這個物件也就是建構函式中的 this 可以訪問到掛載在 this 上面的任意屬性 這個物件可以訪問到建構函式原型上的屬性,所以需要將物件與建構函式鏈結起來 返回原始值需要忽略,返回物件需要正常處理 手動實現 function crea...

談談js中new的作用

function fun name fun.prototype.getnmae function let fc newfun xiaoming console.log fc.name xiaoming fc.getnmae xiaoming從上面的例子中可以得出以下結論 上面是在建構函式沒有返回值的...

js中的new運算子

function base var base new base alert typeof base object var base base alert typeof base string 由以上可知,如果函式返回值是number,string,boolen這樣的值型別,則通過new運算子可以返回...