请老师检查一下,不知道理解的对不对
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var Person = (function() {
// 此处填写代码
//局部变量内部声明的变量,用闭包会保存值一直存在,类似私有变量
var instance = new Object(); //产生一个空值用于接收 子函数返回的值
return function() {
// 此处填写代码
//判断值是否有效如果有效就等于自身,如果空值就赋值
if (instance) {
this.name = 'zhangsan';
this.id = Math.random();
} else {
instance = this;
}
return instance;
//将处理好的对象返回出去,在函数的调用中处理的一直是这个值,因此会等于true
};
})();
var Person1 = new Person();
var Person2 = new Person();
alert(Person1 == Person2);
</script>
</body>
</html>
正在回答 回答被采纳积分+1
补充的问题:
Person1的时候 函数P已经直径过一次了, 所以instanse是有值的,
所以Person2 的时候instanse已经是有值的了 就直接返回它内部的值
所以 P1=P2 是成立的?这种理解对吗?
问题2:实例化函数P的时候 是不是就相当于
Person1 = new Person();-----相等于---->Person1 =Person(); Person1 ()
因此 私有变量得以保存?
问题3: 下面这种理解方法成立吗?
p()()===(p)()
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星