我的编程空间,编程开发者的网络收藏夹
学习永远不晚

javascript面向对象3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

javascript面向对象3

函数
创建函数:
function f(x){…..};
var f = function(x){…};
上面两种形式都可以创建名为f()的函数,不过后一种形式可以创建匿名函数。
       函数定义时可以设置参数。如果传给函数的参数个数不够,则从最左边起依次对应,其余的用undefined赋值,如果传给函数的参数多于函数定义参数的个数,则多出的参数被忽略。
       JS代码:(见附件test1.html)
              function myprint(s1,s2,s3){
                     alert(s1 + "_" + s2 + "_" + s3);
              }
      
              //undefined_undefined_undefined
              myprint();   
              //String1_String2_undefined
              myprint("String1","String2");   
              //String1_String2_String3
              myprint("String1","String2","String3","String4");
 
       因此,对于定义好的函数,我们不能指望调用者将所有的参数全部传进来,对于那些必须用到的参数应该在函数体中加以检测(用!操作符),或者设置默认值然后同参数进行或(||)操作来取得参数。
       JS代码:(见附件test2.html)
              function myprint(s1,person){
                     //默认person对象
                     var defaultPerson = {
                            "name":"name1",
                            "age":18,
                            "sex":"female"
                     };
             
                     //s1不允许为空
                     if (!s1)
                     {
                            alert("s1 must be input");
                            return false;
                     }
 
                     //接受person对象
                     person = person || defaultPerson;
                     alert(s1 + "_" + person.name + ":" + person.age + ":" + person.sex);
              };
 
              //s1 must be input
              myprint();  
              //s1_name:18:female
              myprint("s1");
              //s1_wangsy:31:male
              myprint("s1",{"name":"wangsy","age":31,"sex":"male"});
 
       函数的armuments属性
       在每一个函数体的内部,都有一个arguments标识符。这个标识符代表了一个Arguments对象,Arguments对象非常类似于Array(数组)对象,比如都有length属性,访问它的值用”[]”操作符,利用索引来访问参数值,但是,二者是完全不同的东西,仅仅是表面上有共同点而已(比如说修改Arguments对象的length属性并不会改变它的长度)。
       JS代码:(见附件test3.html)
              function myargs(){
                     alert(arguments.length);
                     alert(arguments[0]);
              }
 
              //0  undefined
              myargs();
              //2  1
              myargs("1",[1,2]);
 
       Arguments对象有一个callee属性,标示了当前Arguments对象所在的方法,可以使用它来实现匿名函数的内部递归调用。
       JS代码:(见附件test4.html)
              function (x){
                     if (x <= 1) return 1;
                     return x*Arguments.callee(x-1);
              }
      
method--方法
       方法就是函数,我们知道,每一个对象都包含0个或多个属性,属性可以是任意类型,当然也包括对象。函数本身就是一种对象,因此我们完全可以把一个函数放到一个对象里面。此时,这个函数就成了对象的一个方法。此后如果要使用该方法,则可以通过对象名利用”.”操作符来实现。
       JS代码:(见附件test5.html)
              var obj = {f0:function(){alert("f0");}};
 
              function f1(){
                     alert("f1");
              }
              //为对象添加方法
              obj.f1 = f1;
 
              //f0 f0是obj的方法
              obj.f0();
              //f1 f1是obj的方法
              obj.f1();
              //f1 f1同时又是一个函数,可以直接调用
              f1();
              //缺少对象 仅仅是obj的方法,只能通过对象调用
              f0();
 
       方法的调用需要对象的支持,那么在方法中如何获取对象的属性呢?this!this关键字我们已经很熟悉了,在js方法中,我们可以用this来取得对方法调用者(对象)的引用,从而获取方法调用者的各种属性。
       JS代码:(见附件test6.html)
              var obj = {"name":"NAME","sex":"female"};
              //为对象添加方法
              obj.print = function(){
                     alert(this.name + "_" + this["sex"]);
              };
 
              //NAME_female
              obj.print();
              obj.sex = "male";
              //NAME_male
              obj.print();
 
       下面来一个更加面向对象的例子:
       JS代码:(见附件test7.html)
              var person = {
                     name:"defaultname",
                     setName:function(s){
                            this.name = s;
                     },
                     "printName":function(){
                            alert(this.name);
                     }
              };
              //defaultname
              person.printName();
              person.setName("newName");
              //newName
              person.printName();
 
       在上面的例子中,完全可以用person.name = …来直接改变person的name属性。另一种改变person属性的方法就是:定义一个function,接收两个参数,一个是person,一个是name的值,看起来像是这样:changeName()person,”newName”),哪种方法好呢?很明显,例子中的方法更形象,更直观一些,而且好象有了那么一点面向对象的影子。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

javascript面向对象3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript面向对象3

函数创建函数:function f(x){…..};var f = function(x){…};上面两种形式都可以创建名为f()的函数,不过后一种形式可以创建匿名函数。       函数定义时可以设置参数。如果传给函数的参数个数不够,则从
2023-01-31

#3 Python面向对象(二)

前言上一节主要记录面向对象编程的思想以及Python类的简单创建,这节继续深入类中变量的相关知识,Here we go!Python中类的各种变量1.1 类变量类变量定义:在类中,在函数体(方法)外的变量称为类变量。类变量在整个类中是公用的
2023-01-30

php面向对象教程3

5.如何实例化对象我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用new 关键字来生成一个对象。$对象名称= new 类名称();
2023-01-31

JavaScript 中的面向对象

JavaScript 语言本身的设计缺陷,误打误撞,成了解释最为彻底的“世界原本的样子”的计算机编程语言;

Scala 学习之面向对象(3)

==> 类        ---> 类的定义class Student{    // 定义属性    private var stuName:String = "Tom"    private vat stuAge:Int = 18    
2023-01-31

面向对象——什么是面向对象

对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

​javascript的面向对象是什么

这篇文章主要介绍“javascript的面向对象是什么”,在日常操作中,相信很多人在javascript的面向对象是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascript的面向对象是什么”的疑
2023-06-05

一文搞懂JavaScript面向对象

面向对象是程序中一个重要的思想,就是程序中所有的操作都是通过对象完成的。

Python 3 学习笔记:面向对象编程

概述面向对象编程(Object Oriented Programming,即 OOP),是一种程序设计思想,比面向过程编程更加灵活,更易扩展。Python 在设计的时候就是按照面向对象编程的思想设计的,像我们前面学过的各种数据类型,如字符串
2023-01-31

面向对象

面向对象特性 class  object封装、继承、多态语法:属性、方法构造函数(在实例化时做一些类的初始化的工作 该函数是用于传参数)析构函数(在实例释放、销毁的时候自动执行的、通常用于一些收尾工作,如:关闭一些数据库链接,关闭打开的临时
2023-01-30

python 面向对象、类、对象

class 类 object 对象 object-oriented programming 面向对象,简称OOP attribute 属性 method 方法inheritance 继承 python中通过类和对象来实现 面向对象的编程面向
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录