<html>
<head>
<script type="text/javascript">
//创建函数:function f(x) {........}
//var f = function(x) {......}
//上面这两种形式都可以创建名为f()的函数,后一种形式可以创建匿名函数
//函数定义时可以设置参数,如果传给函数的参数个数不够,则从最左边起依次对应,其余的用undefined赋值,
//如果传给函数的参数多于函数定义参数的个数,则多出的参数被忽略.
function myprint(s1,s2,s3)
{
alert(s1+"_"+s2+"_"+s3);
}
function test1(){
myprint();//undefined_undefined_undefined
myprint("string1","string2");// //string1_string2_undefined
myprint("string1","string2","string3","string4"); // //string1_string2_string3
}
function myprint2(s1,person)
{
var defaultperson=
{"name":"name1",
"age":18,
"sex":"female"
};
if(!s1)
{
alert("s1 must be input!");
return false;
}
alert(person);//undefined;
person=person||defaultperson;//接受person对象参数
//JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:
//所有对象都被认为是 true。
//字符串当且仅当为空时才被认为是 false。
//null 和 undefined 被认为是 false。
//数字当且仅当为 0 时才是 false。
alert(s1+"_"+person.name+":"+person.age+":"+person.sex);
};
function test2()
{
myprint2();//s1 must be input!
myprint2("s1");//s1_name1:18:female
myprint2("s1",{"name":"latty","age":23,"sex":"male"});
}
//函数的arguments属性
//在每一个函数体的内部,都有一个arguments标识符,这个标识符代表了一个Arguments对象.
//Arguments对象非常类似于Array(数组)对象,都有length属性,用"[]"操作符利用索引来访问参数值,
//(比如说修改Arguments对象的length属性并不会改变它的长度).
function myargs()
{
alert(arguments.length);
alert(arguments[0]);
}
// Arguments对象有一个callee属性,标示了当前Arguments对象所在的方法.
//可以使用它来实现匿名函数的内部递归调用.
function test3()
{
myargs();
myargs("1",[1,2]);
}
//method方法
//方法就是函数.每一个对象都包含0个或多个属性,属性可以是任意类型,
//函数本身就是一种对象,因此我们完全可以把一个函数放到一个对象里面,
//此时,这个函数就成了对象的一个方法.此后如果要使用该方法,
//则可以通过对象名利用"."操作符来实现.
var obj = {
f0:function()
{
alert("f0");
}
}; //对象包含一个方法
function f1() {alert("f1");}
function test4()
{
obj.f1 = f1; //为对象添加方法
obj.f0(); //f0 f0是obj的方法
obj.f1(); //f1 f1是obj的方法
f1(); //f1 f1同时又是一个函数,可以直接调用
f0(); //f0仅仅是obj的方法,只能通过对象来调用
}
//在javascript的方法中,我们可以用this来取得对方法调用者(对象)的引用,从而获取方法调用者的各种属性.
function test5()
{
var obj = {"name":"NAME","sex":"female"};
obj.print = function() { //为对象添加方法
alert(this.name + "_" + this["sex"]);
};
obj.print(); //NAME_female
obj.sex = "male";
obj.print(); //NAME_male
}
//
function test6()
{
var person = {
name:"defaultname",
setName:function(s){
this.name = s;
},
"printName":function(){
alert(this.name);
}
}
person.printName(); //defaultname
person.setName("newName");
person.printName(); //newName
}
//函数的prototype属性
//每一个函数都包含了一个prototype(原型)属性,这个属性构成了javascript面向对象的核心基础
</script>
</head>
<body>
<input type="button" value="test1" onclick="test1();"/><br/>
<input type="button" value="test2" onclick="test2();"/><br/>
<input type="button" value="test3" onclick="test3();"/><br/>
<input type="button" value="test4" onclick="test4();"/><br/>
<input type="button" value="test5" onclick="test5();"/><br/>
<input type="button" value="test6" onclick="test6();"/><br/>
</body>
</html>
分享到:
相关推荐
在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...
《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的..., 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库。
JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库
JavaScript是一种广泛...通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能了解到实际项目中如何有效地运用这些知识,提升编程技巧和解决问题的能力。
总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...
综合以上知识,`js 面向对象实例`涵盖了JavaScript中的面向对象编程基础,以及如何将这些概念应用到HTML5 Canvas的实践中。通过学习和实践这个实例,你不仅可以理解JavaScript的OOP机制,还能掌握如何利用Canvas API...
javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...
JavaScript面向对象编程.pdf
下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **类与对象** - 在JavaScript中,对象是键值对的集合,可以通过字面量语法或构造函数创建。例如: ```javascript const person = { ...
JavaScript面向对象编程指南是完整的扫描版...
javascript面向对象编程培训教程PPT
面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...
JavaScript面向对象编程是一种基于原型(Prototype)的编程范式,它是动态类型语言,允许开发者创建具有复杂特性的对象。在JavaScript中,面向对象主要通过构造函数、原型链和闭包来实现。以下是对这一主题的详细...