JavaScript的OO编程--1.js的特性
至于javascript历史,dom模型...什么的这里就不介绍了,有兴趣的朋友可以上网搜一搜,这里主要通过示例来讲解javascript的OO方式的使用。
这里给出的是最简单也是比较实用的例子
对于方法的参数传递可以通过参数直接取得,也可在方法内部可以通过arguments[i](i是从0开始的)取得。
js中函数都隐含一个对象叫arguments,该arguments是一个数组,通过arguments可以获得到实际传递参数的个数及实际传递参数的值
每个函数的名字都有一个属性叫length,“属性名.length ”获得该函数能接受参数的个数。
显示对象s的类型
显示出test方法的代码,对于函数来说,如果其不返回值,那么其返回值就为undefined
返回为true,null与undefined的关系,undefined实际上从null派生而来
如果在方法体内不用var定义变量,则变量的作用域是全局的,不会被释放,强烈建议要用var在方法体内定义。
采用new方法声明将产生类型是object
propertyIsEnumerable("prototype")用来判断该属性是否可以枚举,有此可知prototype是不能枚举的
prototype是对该对象的原型引用,非常重要后面会详细讲解
迭代出window对象的全部属性和方法,当然prototype等是不能被迭代的。
上面就是我们自己定义的第一个对象
至于javascript历史,dom模型...什么的这里就不介绍了,有兴趣的朋友可以上网搜一搜,这里主要通过示例来讲解javascript的OO方式的使用。
这里给出的是最简单也是比较实用的例子
function add(aa)
{
//判断传入参数的个数
if(1 == arguments.length)
{
alert(arguments[0] + 1);
}
else if(2 == arguments.length)
{
alert(arguments[0] + arguments[1] + 1);
}
}
add(1); //2
add(1,2); //仍然可以 4
//返回定义时的参数个数
alert(add.length); //1
对于方法的参数传递可以通过参数直接取得,也可在方法内部可以通过arguments[i](i是从0开始的)取得。
js中函数都隐含一个对象叫arguments,该arguments是一个数组,通过arguments可以获得到实际传递参数的个数及实际传递参数的值
每个函数的名字都有一个属性叫length,“属性名.length ”获得该函数能接受参数的个数。
var obj = "hello";
alert(typeof obj);
显示对象s的类型
function test()
{
//alert("aa");
alert("bb");
return;
}
alert(test());//undefined
alert(test);
显示出test方法的代码,对于函数来说,如果其不返回值,那么其返回值就为undefined
alert(undefined == null);
返回为true,null与undefined的关系,undefined实际上从null派生而来
function test()
{
obj = "hello";
var obj2 = "hello";
}
test();
alert(obj);
alert(obj2);
如果在方法体内不用var定义变量,则变量的作用域是全局的,不会被释放,强烈建议要用var在方法体内定义。
var str = String("aaa");
alert(typeof str);//string
var obj = new String("aaa");
alert(typeof obj);//object
var obj = new Number(100);
alert(typeof obj);//object
采用new方法声明将产生类型是object
var o = new Object();
alert(o.propertyIsEnumerable("prototype"));//false
propertyIsEnumerable("prototype")用来判断该属性是否可以枚举,有此可知prototype是不能枚举的
prototype是对该对象的原型引用,非常重要后面会详细讲解
for(var temp in window)
{
alert(temp);
}
迭代出window对象的全部属性和方法,当然prototype等是不能被迭代的。
//定义对象
var obj = new Object();
//定义属性并赋值
obj.name = "llying";
alert(obj.name);
//删除属性
delete o.name;
//因为删除了,所以显示没有定义
alert(obj.name);
上面就是我们自己定义的第一个对象