javascript如何封装函数
通常写js组件开发的,都会⽤到匿名函数的写法去封装⼀个对象,与外界形成⼀个闭包的作⽤域。封装,全天下漫天遍野的封装,JQuery,EXT和Prototype.js 封装的是javascript,jQuery uI和jQuery mobile封装着jQuery,java中的JDBC在spirng,Hibernate等框架封装着。
1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
6<meta http-equiv="X-UA-Compatible" content="ie=edge">
7<title>Document</title>
8</head>
9<body>
10<script type="text/javascript">
11var beibei = {
12        init:function () {
13            console.log('come in here!');
14        }
15    };
16    beibei.init();
17
18//构造函数
19function Person() {
20this.name = "beibei";
21this.age = 26;
23return this.name;
24        }
25    }
26var person = new Person();
27    console.log(person.age);
28    console.Name());
29
30function Person(name,age) {
31this.name = name;
32this.age = age;
34return this.name;
35        }
36    }
37
38var p1 = new Person("beibei",10);
39    console.log(p1.name);函数prototype
40    console.log(p1.age);
41    console.Name());
42
43//这样写是没问题的但是有⼀点缺陷就是每个对象都维护相同的⽅法实例⽽其实它们可以共享此⽅法⽽不必每个对象都⽣成此实例
44//在java语⾔中⾯向对象的思想中有⼀条“继承”既然此⽅法对于每个对象来说是公⽤的那么可以在它的⽗类中实现
45//在javascript中继承是基于原型对象的继承在原型对象中实现此⽅法,那么每个对象调⽤次⽅法时⾸先查看⾃⼰是否有此⽅法如果有调⽤⾃⼰的⽅法46//如果没有去原型对象中查询调⽤原型对象的⽅法是不是和java中的继承差不多呢?这是修改后的代码。
47
48function Person(name,age) {
49this.name = name;
50this.age = age;
51    }
52
53    Name = function () {
54return this.name;
55    }
56
57var p1 = new Person("beibei",10);
58    console.log(p1.name);
59    console.log(p1.age);
60    console.Name());
61
62//对象字⾯量的形式构造对象
63var p1 = {
64        name:"beibei",
65        age:10,
66        getName:function () {
67return this.name;
68        }
69    }
70    console.log(p1.name);
71    console.log(p1.age);
72    console.Name());
73
74</script> 75</body> 76</html>