今天晚上,在一個Javascript的Q羣裏,有人問下面這種代碼是什麼意思:html
var time = +new Date;
這段代碼中,比較奇怪的是有一個加號,下面說說我我的的理解:這是對後面的對象作一個+運算,觸發對象執行valueOf進行求值!spa
而Date實例的valueOf返回它的毫秒數,你們能夠嘗試以下代碼:prototype
var now = new Date, time = now.getTime(); console.log(time==now.valueOf());//true console.log(time==+now);//true
再舉個例子:code
function Person(){ } Person.prototype.valueOf=function(){ return "hello"; }; var foo = new Person(); console.log("a"+foo); //這裏將輸出字符串"ahello"
PS: 尊重他人原創,轉載請務必註明來自http://www.cnblogs.com/Raoh/p/4212075.htmlhtm