-0
值.//函數:檢查傳入參數是否爲正數.Number=>Boolean function isPositive(num){ if(typeof num !="number"||!Math.isNaN(num)){return false}//類型檢查! return 1/num===1/Math.abs(num)//若是一個數和他自己的絕對值相等那麼就是正的,不然就是負的,此處負零爲負,正零爲正. }
(function () { /* * 基本思路: * 經過basicSet生成圖片套牌,包含花色顏色階位 * 未完成 * */ var basicSet={//基礎設置只爲初始化牌面而用. pattern:{heart:"♥",diamond:"♦",spade:"♠",club:"♣"}, color:{red:"red",black:"black"}, joker:{needed:true,jokrank:14}, rank:["A","2","3","4","5","6","7","8","9","10","J","Q","K"], cardBox:[], code_generate://生成惟一密碼.無需執行,每次執行都至關於重置內部arr數組. function () { var arr=[]; return function () { for(;;){ var key=Math.random().toString(16).substring(2); if(arr.indexOf(key)==-1){ break; }else{ key=Math.random().toString(16).substring(2); } } arr.push(key); return key; } } }; //一張卡的構造函數 var SingleCard=function (face=false,color="black",pattern="♥A",rank=0,Id,owner="host",joker=null) { //下面這些屬性除了正反面能夠修改,其他在創造後都不能夠修改,因此這段代碼會重寫成帶有被寫保護模式的 if(joker){ this.isfrontface=face?face:false; this.color=color?color:"black"; this.pattern=null; this.rank=basicSet.joker.jokrank; } else { this.isfrontface=face?face:false; this.color=color?color:"black"; this.pattern=pattern?pattern:"♥1"; this.rank=rank } this.Id=Id?Id:Math.random().toString(16).substring(2); this.owner=owner }; SingleCard.prototype.go={ turnRound:function () { this.isfrontface=this.isfrontface?false:true; } }; //一組卡的構造函數 var cardSet=function (owner="host",cards) { this.owner=owner; this.cards=[]; if(Object.prototype.toString.call(cards)==="[object Array]"){ this.cards.concat(cards); } }; cardSet.prototype.go={ shuffle:function () { }, get function(){ } }; //初始化卡片區 var initCardZone =function (){ }; //初始化入口 var init=function () { }; //初始化使用者 var user=function (name,direction,role="player") { }; //模塊出口 return (function () { //接入口 window.myGames={ } })(); })();
4.new操做符的邏輯, new雖然被認爲次一級,點號訪問和括號調用最高級,但存在以下兩種狀況
new func()()
轉化爲new (func())()
new func.func()
轉化爲new (func.func())
見代碼以下javascript
function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function () { alert (4);}; function getName() { alert (5);} //請寫出如下輸出結果: Foo.getName(); getName(); Foo().getName(); getName(); new Foo.getName(); new Foo().getName(); new new Foo().getName();
做者: 你不知道的前端
連接:http://www.imooc.com/article/9925
來源:慕課網前端