连续复制
一键复制

1.常规写法

复制代码
  1. // 函数写法
  2. function funName () {
  3. alert('常规写法');
  4. }
  5. // 调用
  6. funName();

2.将方法作为一个对象

复制代码
  1. // 作为对象方法
  2. var obj = {
  3. funName:function(){
  4. alert('这个必须放在一个对象内部,放在外边会出错!');
  5. }
  6. }
  7. // 调用方法
  8. obj.funName();

3.匿名函数

3.1写法一

复制代码
  1. // 匿名函数
  2. var myfun = function(){
  3. alert('这是一种声明函数的方式,左边是一个变量,右边是一个函数的表达式,意思就是把一个匿名的函数表达式复制给了变量myfun,只是声明了一个变量指向了一个函数对象。');
  4. }
  5. // 调用
  6. myfun();

3.2写法二

复制代码
  1. (function() {
  2. alert('water');
  3. })();

3.3写法三

复制代码
  1. (function(o) {
  2. alert(o);
  3. })('water');

3.4写法四

复制代码
  1. (function(o) {
  2. alert(o);
  3. return arguments.callee;
  4. })('water')('down');

3.5写法五

复制代码
  1. ~(function(){
  2. alert('water');
  3. })();//写法有点酷~

3.6写法六

复制代码
  1. void function(){
  2. alert('water');
  3. }();//据说效率最高~

3.7写法七

复制代码
  1. void function(){
  2. alert('water');
  3. }();//据说效率最高~
复制代码
  1. +function(){
  2. alert('water');
  3. }();
复制代码
  1. -function(){
  2. alert('water');
  3. }();
复制代码
  1. ~function(){
  2. alert('water');
  3. }();
复制代码
  1. !function(){
  2. alert('water');
  3. }();
复制代码
  1. (function(){
  2. alert('water');
  3. }());//有点强制执行的味道~

4.构造函数中给对象添加方法,通常在构造函数中用到。

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。

复制代码
  1. // 给对象添加方法
  2. var funName = function(){}
  3. funName.prototype.myfun = function(){
  4. alert('这是在funName函数上的原始对象上加了一个myfun方法,构造函数中用到');
  5. }
  6. // 调用
  7. var funname = new funName();// 创建对象
  8. funname.myfun();

在给对象添加方法时可以用一下方式添加多个方法:

复制代码
  1. // 给对象添加多个方法
  2. var funName = function(){}
  3. funName.prototype = {
  4. fun1:function(){
  5. alert('fun1');
  6. }
  7. ,fun2:function(){
  8. alert('fun2');
  9. }
  10. }
  11. // 调用
  12. var funname = new funName();// 创建对象
  13. funname.fun1();
  14. funname.fun2();