关于js 单列设计模式问题 请教下各位大神们

qq_36661519 2017-02-17 09:51:44
var getSingle=function(fn){
var result;
return function(){
return result||(result=fn.apply(this,arguments));
}
};
//创建单列--可变的部分
var creatDiv=function(height){
var div=document.createElement('div');
div.innerHtml='单列模式';
div.style.display='none';
div.style.height=height+'px';
document.body.appendChild(div);
return div
}
//创建
var createSingleDiv=getSingle(creatDiv);

document.getElementById('button').onclick=function(){
var login=createSingleDiv('100');
login.style.display='block'
}

把上面这段改成这样会出现关于apply的错误,哪位可以讲解一下谢谢~!



var getSingle=(function(fn){
var result;
return function(){
return result||(result=fn.apply(this,arguments));
}
})(creatDiv);
var creatDiv=function(height){
var div=document.createElement('div');
div.innerHtml='单列模式';
div.style.display='none';
div.style.height=height+'px';
document.body.appendChild(div);
return div
}

document.getElementById('button').onclick=function(){
var login=getSingle('100');
login.style.display='block'
}
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2017-02-17
  • 打赏
  • 举报
回复
哦,第二个的creatDiv需要提到前面去定义。 如果用function creatDiv(){}来定义就不用了,这个就是js里的变量定义的提升。
2017-02-17
  • 打赏
  • 举报
回复
顺序换一下

var creatDiv=function(height){
        var div=document.createElement('div');
        div.innerHTML='单列模式';
        div.style.display='none';
        div.style.height=height+'px';
        document.body.appendChild(div);
        return div
    }
	var getSingle=(function(fn){
        var result;
        return function(){
            return result||(result=fn.apply(this,arguments));
        }
    })(creatDiv);
    
    
    document.getElementById('button').onclick=function(){
        var login=getSingle('100');
        login.style.display='block'
    }
qq_36661519 2017-02-17
  • 打赏
  • 举报
回复
第二个有问题 显示错误
forwardNow 2017-02-17
  • 打赏
  • 举报
回复
单“例”? JavaScript 中的普通对象不就是单例嘛: var person = { name: "zhangsan", say: function () { console.info( this.name ); } }
functionsub 2017-02-17
  • 打赏
  • 举报
回复
这两段代码都没问题。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧