-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
来源:慕课网前端