<!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 OOP中的各种知识点(JS OOP基础与JS 中This指向详解 、 成员属性、静态属性、原型属性与JS原型链)。今天我们来继续探讨剩余的内容吧。 我们都知道,面向对象的三大...
javascript第八课 闭包详解 面向对象编程(OOP) this变化 call和apply
(SharkUI.com注:JavaScript并不是真正拥有私有、公有等等OOP的特性,这篇译文中提到的这些私有、公有、特权等特性,是利用JavaScript的其他特性(参看本文的“闭包”一节)“模拟”出来的。感兴趣的话可以搜索相关的...
现代OOP:类,构造函数,原型继承,封装等。 异步JavaScript:事件循环,承诺,异步/等待,AJAX调用和API 2020年及以后的现代工具:NPM,Parcel,Babel和ES6模块 如何像开发人员一样思考和工作:问题解决,研究,...
在梳理我的OOP并将其应用于JavaScript时,我遇到了在JS:原型中实例化对象的有趣区别。 我敢肯定,阅读本文的许多开发人员都在思考,仅学习此概念对于我来说是一个菜鸟,但是,嘿,我以前从未用过它。 所以我想学习...
JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的 OOP 语言能力。本文将使用面向对象的方式,来教大家用原生js写出一个类似jQuery这样的类库。我们将会学到如下知识点: 闭包:减少变量污染,缩短变量...
原生js oop思维手撸tab选项卡采用es3 +闭包+ OOP的思想封装tab选项卡切换;效果图1.目录结构| -- my-tab | -- inedx.html #视图 | -- js #逻辑代码 | -- my-tab.js #核心代码模块 | -- tpl.js #模板相关...
执行上下文栈、变量对象、作用域链、this执行上下文闭包变量提升v8垃圾回收call、apply、bind原理及实现创建对象和继承oop编程思想ES6let、const箭头函数Set、Map、WeakSet和WeakMap异步Promise原理及实现Generator...
:strawberry: 前端研究 :...querySelector,eventListener 2020/09/28 OOP,原始vs引用,闭包,绑定,调用并应用 2020/09/28 JS ES6(let,const,箭头函数) 2020/09/29 JS ES6(地图,类,数组等) 2020/09/30