面向对象的javascript(笔记)
人气:0
一、引用
//产生一个数组对象
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 '参数类型不匹配'
}
}
}
复制代码 代码如下:
//产生一个数组对象
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 '参数类型不匹配'
}
}
}
加载全部内容