博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js外部访问局部变量
阅读量:3948 次
发布时间:2019-05-24

本文共 1159 字,大约阅读时间需要 3 分钟。

1. 构造函数法

function Person(name) {
var name = name this.sayName = function () {
console.log(name) } } var person1 = new Person('ss') person1.sayName() //ss var person2 = new Person('bb') person2.sayName() //bb console.log(person1.sayName == person2.sayName) //false。每个实例的同名方法都要重新创建。

2. 原型访问

function Person(name) {
var name = name Person.prototype.sayName = function () {
console.log(name) } } var person1 = new Person('ll') person1.sayName() //ll var person2 = new Person('bb') person2.sayName() //bb console.log(person1.sayName === person2.sayName) //true。每个实例的方法都是动态共享的。但每个实例都没有自己的私有变量。

私有变量若痛过原型方法访问,私有变量就是动态共享的;若通过实例方法访问,私有变量在每个实例中都有其特异性。而实例属性不同,实例属性将覆盖同名原型属性,且永远是特异性的。

3. 模块模式

前面的方法都是为自定义类型创建特权方法,而模块模式是为单例创建特权方法。

var person = function () {
var name = "Bob"; //私有变量 function privateFunction() {
//私有函数 console.log('私有函数') }; return {
publicName: name, //特权属性 publicMethod: function () {
//特权方法 privateFunction(); } } }(); console.log(person.publicName)//Bob person.publicMethod() //私有函数

转载地址:http://rdhwi.baihongyu.com/

你可能感兴趣的文章
Js或jQuery图片层叠轮播------Sestid
查看>>
js或jQuery实现返回顶部功能------Sestid
查看>>
JS实现拖拽效果------Sestid
查看>>
jQuery实现倒计时秒杀效果------Sestid
查看>>
jQuery实现html网页顶部自适应导航栏(media)------Sestid
查看>>
鼠标悬停显示下划线(带小特效)------Sestid
查看>>
jQuery 实现input搜索框自动匹配------Sestid
查看>>
Js 实现回车键触发登录,并弹出需要输入信息------Sestid
查看>>
Js字符串和数组方法及使用------Sestid
查看>>
JavaScript常用算法(面试)------Sestid
查看>>
Js或者jQuery实现点击图片出现蒙层并将图片放大在蒙层上------Sestid
查看>>
Js,jQuery事件、效果大全------Sestid
查看>>
CSS块元素、内联元素、内联块元素详解------Sestid
查看>>
Js实现跟随鼠标移动的小球------Sestid
查看>>
HTML图像,链接,列表,表格等详细介绍------Sestid
查看>>
Js实现的俄罗斯方块小游戏------Sestid
查看>>
Js实现贪吃蛇小游戏------Sestid
查看>>
jQuery常用方法(持续更新)
查看>>
原生js实现自定义倒计时效果------Sestid
查看>>
原生js实现生成随机验证码=------Sestid
查看>>