首頁  >  文章  >  web前端  >  詳解模擬一個js new一個物件的過程程式碼

詳解模擬一個js new一個物件的過程程式碼

高洛峰
高洛峰原創
2017-03-19 17:26:341586瀏覽

    這篇文章介紹詳解模擬一個js new一個對象的過程代碼                

        function Person(){
          this.name=1234;
         // return {};
          }
        Person.prototype.getname=function(){
            console.log(this.name);
            }
        function CreateObj(){
           var fn=[].shift.call(arguments);
           var args=arguments;
           var obj=new Object();
           var ret=fn.apply(obj,args);
           obj.__proto__=fn.prototype;
           return typeof ret ==='object'?ret:obj;
           }
    var a=CreateObj(Person);
    console.log(a);

上述代碼CreateObj 模擬了js new一個對象的過程,從該函數的代碼中可以清晰的看到一個對像是怎麼產生的,從這裡我們也可以發現,如果建構函式顯示的回傳一個對象,new出來的物件就是該建構函式返回的對象,如果retrun其他型別的資料都會被new忽略。


#

以上是詳解模擬一個js new一個物件的過程程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn