`

javascropt oop与闭包

阅读更多
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>闭包</title>
</head>

<body>
<script>
    // JavaScript Document

//    var Person=function(name,age){
//        this.name=name;
//        this.age=age;
//        this.say=function(){
//            console.info('hello')
//        }
//    }
//    Person.prototype={
//        Person:function(){
//
//        },
//        hello:function(){
//            console.info(this.age+' '+this.name)
//        }
//    }
//    var p=new Person();
//    p.say();
//
//    var p1=new Person('zhangsan',19);
//    p1.hello();


    var Person=function(){
        var id=1;//private
        this.name='';//public
        //闭包访问私有变量
        this.say=function(){
            return function(){
              return id;
            };
        }
    }
    Person.age=19;//静态变量  可以通过类或对象访问
    /**
     * 通过原型扩展属性和方法
     * @type {{}}
     */
    Person.prototype={
        address:'',
        hello:function(){
            console.info('hello');
        }
    }

    //实例化对象
    var person=new Person();
    console.info('类变量:'+Person.age)
    console.info('私有变量:'+person.id);//访问不到 underfined
    console.info('使用闭包访问 私有变量:'+person.say()())
    person.name='张三';
    person.address='重庆';
    console.info(person)
    console.info(new Person().hello())


</script>

</body>
</html>
分享到:
评论

相关推荐

    JavaScript面向对象编程指南

     如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;  如何应用适当的编程模式,发挥JavaScript语言特有的优势;  如何应用设计模式解决常见问题。 两章中文版和完整英文版。

    JS继承与闭包及JS实现继承的三种方式

    在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 、 成员属性、静态属性、原型属性与JS原型链)。今天我们来继续探讨剩余的内容吧。 我们都知道,面向对象的三大...

    2.04 面向对象编程.pdf

    javascript第八课 闭包详解 面向对象编程(OOP) this变化 call和apply

    JavaScript中的私有成员

    (SharkUI.com注:JavaScript并不是真正拥有私有、公有等等OOP的特性,这篇译文中提到的这些私有、公有、特权等特性,是利用JavaScript的其他特性(参看本文的“闭包”一节)“模拟”出来的。感兴趣的话可以搜索相关的...

    JonasJavascript2021:完整JavaScript课程2021

    现代OOP:类,构造函数,原型继承,封装等。 异步JavaScript:事件循环,承诺,异步/等待,AJAX调用和API 2020年及以后的现代工具:NPM,Parcel,Babel和ES6模块 如何像开发人员一样思考和工作:问题解决,研究,...

    prototype-speed-test

    在梳理我的OOP并将其应用于JavaScript时,我遇到了在JS:原型中实例化对象的有趣区别。 我敢肯定,阅读本文的许多开发人员都在思考,仅学习此概念对于我来说是一个菜鸟,但是,嘿,我以前从未用过它。 所以我想学习...

    利用不到200行代码写一款属于你自己的js类库

    JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的 OOP 语言能力。本文将使用面向对象的方式,来教大家用原生js写出一个类似jQuery这样的类库。我们将会学到如下知识点: 闭包:减少变量污染,缩短变量...

    es-tab:原生js tab选项卡切换

    原生js oop思维手撸tab选项卡采用es3 +闭包+ OOP的思想封装tab选项卡切换;效果图1.目录结构| -- my-tab | -- inedx.html #视图 | -- js #逻辑代码 | -- my-tab.js #核心代码模块 | -- tpl.js #模板相关...

    note:更加杂乱的个人笔记

    执行上下文栈、变量对象、作用域链、this执行上下文闭包变量提升v8垃圾回收call、apply、bind原理及实现创建对象和继承oop编程思想ES6let、const箭头函数Set、Map、WeakSet和WeakMap异步Promise原理及实现Generator...

    Front_End_Study

    :strawberry: 前端研究 :...querySelector,eventListener 2020/09/28 OOP,原始vs引用,闭包,绑定,调用并应用 2020/09/28 JS ES6(let,const,箭头函数) 2020/09/29 JS ES6(地图,类,数组等) 2020/09/30

Global site tag (gtag.js) - Google Analytics