摘要:今天看到這樣一道題填寫處的內(nèi)容讓下面代碼支持問題操作符做了些什么呢創(chuàng)建一個新對象將構(gòu)造函數(shù)的作用域賦給新對象因此就指向了這個新對象執(zhí)行構(gòu)造函數(shù)中的代碼為這個新對象添加屬性返回新對象。
填寫"TO DO"處的內(nèi)容讓下面代碼支持a.name = "name1"; b.name = "name2";
function Obj(name){ // TO DO } obj. /* TO DO */ = "name2"; var a = Obj("name1"); var b = new Obj;
創(chuàng)建一個新對象;
將構(gòu)造函數(shù)的作用域賦給新對象(因此 this 就指向了這個新對象) ;
執(zhí)行構(gòu)造函數(shù)中的代碼(為這個新對象添加屬性) ;
返回新對象。
function Obj(name){ this.name = name; console.log(this); // 嚴格模式下是undefined 非嚴格模式下是window對象 } var a = Obj("name1"); console.log(a); // 結(jié)果 => undefined
哦,原來只是當作正常的函數(shù)調(diào)用來執(zhí)行,Obj沒有返回值,故a是undefined。
使用new操作符創(chuàng)建對象,并且構(gòu)造函數(shù)沒有返回值或者返回為基本數(shù)據(jù)類型,那么返回該對象,如下例:
function Obj(name){ this.name = name; } var b = new Obj; console.log(b); // Obj { name: undefined }
function Obj(name){ this.name = name; return "chic"; } var b = new Obj; console.log(b); // 同上
如果構(gòu)造函數(shù)返回一個引用類型:
function Obj(name){ this.name = name; return {}; } var b = new Obj; console.log(b); // {}
對于不加new來執(zhí)行構(gòu)造函數(shù)來說,返回值就是構(gòu)造函數(shù)的執(zhí)行結(jié)果;對于加new關(guān)鍵字來執(zhí)行構(gòu)造函數(shù)而言,如果return的是基本數(shù)據(jù)類型,那么忽視掉該return值,如果返回的是一個引用類型,那么返回該引用類型。
參考答案?:
function Obj(name){ this.name = name; return this; } Obj.prototype.name = "name2"; var a = Obj("name1"); var b = new Obj;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92644.html
摘要:我們將通過一個構(gòu)造函數(shù)創(chuàng)建的對象,稱為是該類的實例孫悟空男玉兔精女奔波霸男使用可以檢查一個對象是否是一個類的實例語法對象構(gòu)造函數(shù)如果是,則返回,否則返回所有的對象都是的后代,所以任何對象和做檢查時都會返回 使用對象字面量模式來創(chuàng)建一個對象 (它也叫單例模式 //JS與其他語言的單例模式有很大的區(qū)別(如Java),但這就是語言的區(qū)別) var obj = {}; ...
摘要:構(gòu)造函數(shù)很多教程都告訴我們,不要直接用內(nèi)置對象的構(gòu)造函數(shù)來創(chuàng)建基本變量,例如的寫法就應(yīng)該用的寫法來取代。但是,構(gòu)造函數(shù)注意是大寫的有點特別。構(gòu)造函數(shù)接受的參數(shù)中,第一個是要傳入的參數(shù)名,第二個是函數(shù)內(nèi)的代碼用字符串來表示。 如何寫JavaScript才能逼格更高呢?怎樣才能組織JavaScript才能讓別人一眼看出你不簡單呢?是否很期待別人在看完你的代碼之后感嘆一句原來還可以這樣寫呢?...
摘要:創(chuàng)建對象的種方式方式一通過對象字面量表示法又稱為直接量原始方式。例子在自定義構(gòu)造函數(shù)的內(nèi)部定義對象的方法函數(shù)的值賦給的屬性。 創(chuàng)建對象的4種方式 方式一:通過對象字面量表示法(又稱為直接量、原始方式)。object literals 方式二:通過new和構(gòu)造函數(shù)Object()、String()等。 方式三:用自定義構(gòu)造函數(shù)來初始化新對象。 方式四:通過Object.create()...
摘要:數(shù)據(jù)管理,包括數(shù)據(jù)邏輯數(shù)據(jù)請求數(shù)據(jù)存儲等功能。負責處理的事件,并更新也負責監(jiān)聽的變化,并更新,控制其他的所有流程。上面代碼就是一個最簡單的類,構(gòu)造函數(shù)創(chuàng)建出來的對象自身有屬性,其原型上面有一個屬性。 JS題目總結(jié):原型鏈/new/json/MVC/Promise 1原型鏈相關(guān) showImg(https://segmentfault.com/img/remote/14600000161...
摘要:如果該函數(shù)的返回值大于,表示第一個成員排在第二個成員后面其他情況下,都是第一個元素排在第二個元素前面。第三次執(zhí)行,為上一輪的返回值,為第四個成員。第四次執(zhí)行,為上一輪返回值,為第五個成員。 JS中ArrayAPI學(xué)習(xí)筆記 記博客,時?;仡?尤其是面試之先回顧阮一峰標準庫Array對象 1 一些標準庫回顧 showImg(https://segmentfault.com/img/remo...
閱讀 3326·2023-04-26 00:58
閱讀 1277·2021-09-22 16:04
閱讀 3323·2021-09-02 15:11
閱讀 1568·2019-08-30 15:55
閱讀 2348·2019-08-30 15:55
閱讀 3277·2019-08-23 18:41
閱讀 3470·2019-08-23 18:18
閱讀 2760·2019-08-23 17:53