尚学堂requireJs课程---3、私有和公有属性和方法
一、总结
一句话总结:
在 【模块】 的基础上,在return对象里面的方法和属性就是公有的(因为外部可以访问),不在的就是私有的
<script type="text/javascript">
/*
私有与公有
*/
var module = (function(){
var infoObj = {
name:'iwen',
age:20
}
function getName(){
if(!infoObj.name){
return;
}
return infoObj.name;
}
function getAge(){
if(!infoObj.age){
return;
}
return infoObj.age
}
function setAge(age){
if(age){
infoObj.age = age;
}
}
function setName(name){
infoObj.name = name
}
/*
公有方法:getName,getAge,setAge
私有方法:infoObj
*/
return{
getName:getName,
getAge:getAge,
setAge:setAge,
// setName:setName
}
})();
console.log(module.getName());
console.log(module.getAge());
module.setAge(30);
console.log(module.getAge());
// module.setName("ice"); // 错误
</script>
二、内容在总结中
1 <!DOCTYPE html>
2 <html lang="en" dir="ltr">
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 </head>
7 <body>
8 <script type="text/javascript">
9 /*
10 私有与公有
11 */
12 var module = (function(){
13 var infoObj = {
14 name:'iwen',
15 age:20
16 }
17
18 function getName(){
19 if(!infoObj.name){
20 return;
21 }
22 return infoObj.name;
23 }
24 function getAge(){
25 if(!infoObj.age){
26 return;
27 }
28 return infoObj.age
29 }
30
31 function setAge(age){
32 if(age){
33 infoObj.age = age;
34 }
35 }
36
37 function setName(name){
38 infoObj.name = name
39 }
40 /*
41 公有方法:getName,getAge,setAge
42 私有方法:infoObj
43 */
44 return{
45 getName:getName,
46 getAge:getAge,
47 setAge:setAge,
48 // setName:setName
49 }
50
51 })();
52
53 console.log(module.getName());
54 console.log(module.getAge());
55 module.setAge(30);
56 console.log(module.getAge());
57 // module.setName("ice"); // 错误
58
59 </script>
60 </body>
61 </html>