<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function Person(name) {
this.user_name = name;
//通过这种 方式来模拟私有成员
var user_age = 18;
this.getAge = function () {
return user_age;
}
this.setAge = function (age) {
user_age = age;
}
}
var p1 = new Person('小明')
console.log(p1.user_name);
//访问不到p1对象的user_age属性,因为函数对象Person 注册时并没有设置 this.user_age 所以显示undefined
console.log(p1.user_age);
p1.setAge(100);
console.log(p1.getAge(100) + ' 岁');
</script>
<script>
var a = 100;
function fn1() {
var b = 101;
console.log(b);
console.log(a);
return function () {
var b = 99;
console.log(b);
console.log(a);
}
}
var fn2 = fn1();
fn2();
function f1() {
var x = 100;
x++;
return function () {
console.log(x)
};
}
var fn = f1()
fn(); //由于调用f1函数的返回值 是一个函数类型 所以fn也是一个函数 ,可以调用
//闭包是指有权访问另一个函数作用域中的变量的函数
function f2() {
var funs = new Array();
for (var i = 0; i < 10; i++) {
funs[i] = function () {
console.log(i);
}
}
return funs;
}
var myfuns = f2();
for (var n = 0; n < myfuns.length; n++) {
myfuns[n]();
}
</script>
</head>
<body>
</body>
</html>