zoukankan      html  css  js  c++  java
  • JavaScript作用域,面向对象

    一、作用域

    python   :以函数作为作用域

    JavaScript 作用域

     -------------------------1.默认以函数作为作用域---------------------

    function func(){
         if (1==1){
              var name = 'xiaoming';
         }
         console.log(name);
    }
    func();

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

    function func(){
         if (1==1){
              var name = 'xiaoming';
         }
         console.log(name);
    }

    -------------------------3.函数的作用域存在作用域链,并且也是在被调用之前创建-------------------

    xo = 'liyang' //4
    function func(){
    var xo = 'eric'; //3
    function inner(){
    xo = 'xiaohong' //1
    console.log(xo);
    }
    var xo = 'tony' //2
    return inner;
    }
    var ret = func()
    ret()

    结果返回1 ,没有1就返回2,没有1和2返回3,123没有返回4,都没有报错

    ----------------------------4.函数内局部变量提前声明--------------------------------

    function func(){
       console.log(xxoo);
       var xxoo = 'liyang';
    }
    func()

    结果找不到变量,undefined

    二、面向对象

    函数:

    function Foo(n){
       this.name = n;
    }
    var obj = new Foo('we');


    a.this代指对象(python self)
    b.创建对象时,new 函数()

    原型(类似python的__init__):

    function Foo(n){
    this.name = n;
    }
    Foo.prototype = {
       'sayName':function(){
        console.log(this.name)
      }
    }

    obj1 = new Foo('we');
    obj1.sayName()
    obj2 = new Foo('wee');

  • 相关阅读:
    mysql中delimiter
    error: unpacking of archive failed on file /usr/sbin/zabbix_agent;592e5bc3: cpio: open
    CefSharp中文帮助文档
    ASP.NET Aries 开发框架
    简洁的富文本编辑器
    asp.net core 获取appsettings.json里的配置
    在asp.net core中使用NLog
    临时禁用Resharper
    visual studio 无添加视图 选项
    visual studio(vs)初始化
  • 原文地址:https://www.cnblogs.com/brownyangyang/p/9191802.html
Copyright © 2011-2022 走看看