談談js中new的作用

2021-10-11 18:36:55 字數 1196 閱讀 8430

function

fun(name)

fun.prototype.

getnmae

=function()

let fc=

newfun

("xiaoming");

console.

log(fc.name)

;//xiaoming

fc.getnmae()

//xiaoming

從上面的例子中可以得出以下結論:

上面是在建構函式沒有返回值的情況下實現的,那如果有返回值會發生什麼?

function

fun(name)

fun.prototype.

getnmae

=function()

let fc=

newfun

("xiaoming");

console.

log(fc.name)

;//xiaoming

fc.getnmae()

//xiaoming

我們看到當返回的是原始資料型別的時候得到的結果和原來一樣,所以可以說明在建構函式中返回原始資料型別對結果沒影響。下面再看看返回物件。

function

fun(name)

return

}let fc=

newfun

("xiaoming");

console.

log(fc.name)

;//undefine

console.

log(fc.age)

//12

通過這個例子我們會發現建構函式中的this依然正常工作,但是當返回的是物件時,最終new得到的結果就是這個物件,這裡我們又得出了乙個結論,當建構函式返回值為物件時,這個返回值會被正常使用。

最後說明一下如果建構函式什麼都不返回缺省會返回this

自己實現new操作符

首先來回顧下new操作符的幾個作用

function

mynew

(context,

...args)

稍微解釋下過程

js 中 new操作符的作用

1.在記憶體中建立乙個新物件 var obj 2.把新物件的 proto 屬性鏈結到建構函式的原型prototype屬性上 fn 建構函式 obj.proto fn.prototype 3.把建構函式內部的this指向新物件上並呼叫建構函式 給新物件新增屬性 fn.call obj 4.如果建構函式...

關於Js中new操作符的作用詳解

前言 js是當今時代最常用的 操作語言,其中new操作符尤為常見。對於很多 小白來說,並不清楚new在js中扮演著怎樣的角色,具體是做什麼用,幹了什麼。本文從new操作符的作用著手,簡單介紹new操作符相關知識。什麼是new?眾所周知,在js中,new的作用是通過建構函式來建立乙個例項物件。像下面這...

關於js 中的new

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