zoukankan      html  css  js  c++  java
  • JavaScript函数与面向对象基础_js

    一 、javaScript函数分类

    1、普通函数

    function 函数名(){函数体}

    调用方式 :函数名()

    2、匿名函数

    function (){函数体}

    调用:一般在做好里面直接调用,相当于整体放进去,如:

    setInterval(function (){函数体}){函数体}

    3、自执行函数

    (function(){})()

    自动执行,常用于导入的插件

    二、作用域

    1、js以函数作为作用域

    2、函数的作用域在函数被调用之前,已经创建

    3、函数的作用域存在作用域链并且也是被调用之前创建(例如函数套函数链)

        x=0
        function func() {
        var x=1
        function inner() {
        console.log(x)
        }
        return inner
        }
        ret=func()
        ret() #打印的是1

    4、函数内部局部变量会提前声明

     (1)

    function fun() {
    console.log(xo);
    }
    fun() //程序会报错

    (2)
    function fun() {
    console.log(xo);
    var xo='chen'
    }
    fun() //会打印undefind

    5、总结词法分析顺序例子:

    function fun(age){
    console.log(age); //function age
    var age=32;
    console.log(age); //32
    function age() {};
    console.log(age);//32
    }

    fun(22)

    分析先后顺序:

    (1)、形式函数

      a、age=undefined

      b、age=22

    (2)、局部变量

      a、age=undefined

    (2)、函数声明表达式

      a、age=undefined

      b、age=function表达式

    分析之后拿着 age=function函数体 开始去从上往下执行,所以得出上面的结果

    三、面向对象

    1、格式

    function Foo(n) {
    this.name=n;
    this.sayName=function () {
    console.log(this.name)
    }
    }
    var obj=new Foo('chen')
    console.log(obj.name)
    obj.sayName();

    this:代指对象(相当于python的self)
    创建对象时,new 类()

    2、python的类的函数自动保存在类中,js中的类自动保存在对象中,浪费内存空间
    原型:让需要的js函数保存在类中:
    function Foo(n) {
    this.name=n;
    Foo.prototype={
    'sayName':function () {
    console.log(this.name)
    }}
    }
    var obj=new Foo('chen')
    console.log(obj.name)
    obj.sayName();






  • 相关阅读:
    BZOJ 3669 & luogu 2387 魔法森林
    caioj 2064 & POJ 1741 & CH 0x40数据结构进阶(0x45 点分治)例题1:树
    caioj 2063& CH 0x40数据结构进阶(0x44 分块)例题4:小Z的袜子
    BZOJ 2154: Crash的数字表格
    追查坏牛奶(最大流)
    [JLOI2014]松鼠的新家
    [HAOI2015]树上操作
    [NOI2015]软件包管理器(树链刨分)
    [JSOI2008]球形空间产生器(高斯消元)
    [ZJOI2008]树的统计(树链刨分)
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/12726550.html
Copyright © 2011-2022 走看看