前言
本篇主要是说明在JS文件中,封装JS比较常用的几种模式。
运用
1.常见写法。
//函数的写法 function run () { alert('常规写法');//这里是你函数的内容 } // 调用 run();
2.匿名函数写法
// 匿名函数的写法 var run = function(){ alert('这是一种声明函数的方式,左边是一个变量,右边是一个函数的表达式,意思就是把一个匿名的函数表达式赋值给了变量myfun,只是声明了一个变量指向了一个函数对象。');//这里是你函数的内容 } // 调用 run();3. 将方法作为一个对象
// 作为对象方法,函数写法,这里创建了两个函数外面用{}包裹起来 var Test = { run1:function(){ alert('这个必须放在一个对象内部,放在外边会出错!');//这里是你函数的内容 } ,run2:function(){ alert('这个必须放在一个对象内部,放在外边会出错!');//这里是你函数的内容 } } //调用 Test.run1();//调用第1个函数 Test.run2();//调用第2个函数
4.对象构造添加方法的三种形式。
4.1构造函数中给对象添加方法
// 给对象添加方法 var funName = function(){}; funName.prototype.way = function(){ alert('这是在funName函数上的原始对象上加了一个way方法,构造函数中用到'); } // 调用 var b = new funName();// 创建对象 b.way();//调用对象属性
或者
<script> function person(name,qq){ this.name = name; this.qq = qq; } person.prototype.showname = function(){//这里showname即使方法的引用也是方法名,有点奇怪 alert("我的名字:"+this.name); } var p1 = new person("张三",11111); var p2 = new person("李四",22222); p1.showname(); //alert(p1.showname == p2.showname );//true </script>
4.2
//第二种 person.prototype = { showname: function(){ alert('我的名字'+this.name) } }
4.3
//第三种 person.prototype = function(){ showname = function(){alert('我的名字:'+this.name)} return { showname: showname} }()