面向对象的javascript(笔记)

  一、引用

  

复制代码 代码如下:

  //产生一个数组对象

  var items = new Array('1','2','3');

  //使一个引用指向该对象

  var itemRef = items;

  items.push('4');

  //items 与 itemRef指向同一对象

  alert(items.length === itemRef.length);

  // 修改对象会产生一个新对象

  var item = 'test';

  var itemRef = item;

  item+='ing';

  //此时item和itemRef不再指向同一个对象

  alert(item != itemRef);

  二、判断传入参数的数量及类型

  

复制代码 代码如下:

  //arguments 能用了判断函数参数的个数

  function sendMessage(msg,obj){

  if(arguments.length ==2)

  obj.handleMsg(msg);

  else

  alert(msg);

  }

  判断类型可以使用typeof和javascript对象的constructor属性

  

复制代码 代码如下:

  //typeof能用一个字符串表达变量的类型名

  //判断一个变量num是否是string 类型

  if(typeof num == 'string')

  //但是typeof对都是object array类型不能区分

  //利用constructor 判读num是否是String类型

  if(num.constructor == String)

  if(num.constructor == Array)

  //该函数判断一个函数的变量的长度和变量类型

  function strict(types,args){

  if(types.length != args.length){

  throw "参数个数无效";

  }

  for(var i=0; i<args.length; i++){

  if(args[i].constructor != types[i]){

  throw '参数类型不匹配'

  }

  }

  }