JavaScript中函數對象和對象的區別


function Test (word) {
    console.log (word);
}

Test('哈哈,我是函數');

new Test('哈哈,我是對象');


//將以上的調用方式換種通俗易懂的方式

Test.call("哈哈,我是函數");     //相當於Test();

//相當於new Test();
var obj = {};
obj._proto_ = Test.prototype;
Test.call(obj);

 

本質的區別就是,兩次調用之中的this不同。調用Test('...');的時候,里面的this是頂級對象window,返回值是undefined。調用new Test('...');的時候,它會先new一個對象,置類型為Test,之后把它作為this執行Test函數,最后再把對象返回。

 

 

 

來源於sf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM