JS函数创建三种方式 JS创建对象三种方式 |
---|
一、javaScript 函数创建的三种方式
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>The three ways </title>
<script type="text/javascript">
/*
方式一、function定义函数格式如下:
function 函数名( 参数列表 ) {
函数体
}
函数的调用:函数名();
*/
window.onload=function(){
alert("页面加载完成 调用不同方式定义的方法!!!");
function voidFun(){
alert("我是方式一定义的无参函数");
}
voidFun();//次位置调用voidFun();但调用的是下面的再次定义的voidFun()
//js不支持重载 重载即覆盖
function voidFun(){
alert("我是方式一定义的无参函数 与已经定义好的试图重载 但我覆盖了它");
}
function singleFun(a){
alert("我是方式一定义的一个参数函数 传入的值为:" + a);
}
singleFun(666);
function moreFun(a,b){
alert("我是方式一定义的两个个参数函数传入为:"+a+" "+b);
}
moreFun("世界",2016);
/*
arguments相对于Java 中接收的可变长参数数组(隐式存在不用定义)
public void fun( Object ... params ){} params是一个接收参数的数组
在function内可用arguments[i]来获取传入的可变参数
arguments在函数体内可以直接使用,不需要我们去定义。
它可以接收所有的函数参数值,arguments的值跟数组一样
在JavaScript中函数在调用的时候,传递的参数会从左到右,依次对函数的参数进行赋值
没有 被赋到值的参数默认值为undefined
*/
function sum(){
//定义一个变量保存相加的和
var result = 0;
// 遍历数组arguments
for (var i = 0; i < arguments.length; i++ ) {
// 获取每一个变量相加
var p = arguments[i];
alert(typeof(p)+" 值 "+p);
if ( typeof(p) == "number" ) {
result += p;
}
}
return result;
}
var result = sum(12,88,"100",50);
alert("和为: "+result);
//方式二:var 函数名 = new Function(“参数列表”,”函数体”);
//例如:
var sum = new Function("num1,num2","return num1+num2");
// 函数调用
var result1 = sum(120,130,66);
alert(result1);
//方式三种定义方式如下:
// var 函数名 = function(参数列表) { 函数体 }
var funname = function(a,b){
alert(a); // abc
alert(b); // true
}
// 函数调用
funname("abc",true);
}
</script>
</head>
<body>
<h4>本html是javascript的三种函数定义 在<head>标签中使用</h4>
</body>
</html>
二、javaScript 创建对象的三种方式
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>new Object of js</title>
<script type="text/javascript">
/*
方式一、Object形式的自定义对象
var 对象名 = new Object(); //new一个空的对象
对象名.属性名 = 值; // 给对象实例添加一个属性
对象名.函数名 = function(){} //给对象实例添加一个方法
js对象的属性访问:
对象.属性名
*/
var Student1=new Object();
Student1.name="方式一 爱尔得华";
Student1.age=23;
//创建对象方法 如果是toString 则调用对象相对于调用此方法
Student1.toString1=function(){
alert("方式一 hello my name is toString1()");
}
Student1.toString=function(){
var result="方式一 在toString方法内输出信息:年龄:" + this.age + ",姓名:" + this.name;
alert(result);
return result="方式一 谁调用toString方法就返回给谁输出这句话 重写方法内容";
}
alert(Student1);
Student1.toString1();
/*
方式二、{}花括号形式的自定义对象
花括号中,多组属性,我们必须使用,逗号进行分隔。
var 对象名 = {
属性名: 值, // 给对象添加属性
属性名(函数名): function(){} // 给对象添加方法
}
对象的访问:
对象.属性名
*/
var Student2={
name: "方式二 爱尔得华2",
age: 29,
toString1:function(){
alert("方式二 my name is Student2 toString1()");
},
toString:function(){
alert("方式二 my name is Student2 toString()");
return "方式二 我是toString方法返回来的 如果没有我 调用者得到的就是undefine";
}
};
alert( Student2.name );
alert(Student2);
/*
方式三、function形式的自定义对象(在js中函数即是对象)
function 对象名(){
this.属性名 = 值; // 给对象添加属性
this.函数名 = function(){} //给对象添加方法
}
使用
var 变量名 = new 对象名() // 创建一个对象的实例
变量名.属性名
*/
function Student3(){
this.name="方式三 爱尔得华3";
this.age=30;
this.toString=function(){
alert("方式三 我是Strudent3的toString()")
return "方式三 我是toString方法返回来的 如果没有我 调用者得到的就是undefine";
}
this.toString1=function(){
alert("方式三 我是Strudent3的toString2()");
}
}
var stu=new Student3();
alert(stu);
stu.toString1();
</script>
</head>
<body>
</body>
</html>
版权声明:本文为lxf512666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。