帮忙看下这个变量在面向对象里叫什么?

发布于 2022-09-07 04:25:27 字数 476 浏览 12 评论 0

帮忙看看下面的js oop代码中 对私有变量、实例变量、静态变量、公共变量诠释的对不对。
另外帮忙看下a变量是什么变量?在oop里叫什么变量?

var Oop = (function () {

  var a = 'A'

  function Oop() {
    // private私有变量
    var _private = 'private'

    // 实例变量
    this.name = 'james'
  }

  vue.prototype = {
    constructor: Oop,
    consoleName: function () { // public公共方法、公有方法
      console.log(this.name)
    }
  }

  Oop.staticFunc = function () { } // static静态方法

  return Oop
})()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

北城孤痞 2022-09-14 04:25:27

严格来讲,JavaScript 中没有私有成员的概念;所有对象属性都是公有的。不过,倒是有一个私有变量的概念。任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。

私有变量包括函数的参数、局部变量和在函数内部定义的其他函数。

    var Oop = (function () {
    
      var a = 'A'// 静态私有变量,因为每个 Oop 的实例共享同一个 a
    
      function Oop() {
        // private私有变量,实例变量
        var _private = 'private'    

        this.name = 'james'
      }
    
      Oop.prototype = {//此处应为 Oop 非 vue
        constructor: Oop,
        consoleName: function () { // public公共方法、公有方法
          console.log(this.name)
        }
      }
    
      Oop.staticFunc = function () { } // static静态方法
    
      return Oop
    })()

另外,还有个特权方法

function MyObject(){
//私有变量和私有函数
    var privateVariable = 10;
    function privateFunction(){
        return false;
    }
//特权方法(可以访问私有变量和函数的公有方法)
    this.publicMethod = function (){
        privateVariable++;
        return privateFunction();
    };
}

摘自JavaScript高级程序设计-第3版-中

看轻我的陪伴 2022-09-14 04:25:27

a这个变量在 java 等编程语言中应该是不存在的,1 他不在Oop里面 所以不算私有变量和实例变量,他也不会被类所调用,也不属于静态变量,更不会被外界调用了
但是可以把 版本信息 作者与逻辑无关的 什么的 存储在a 这种变量中 然后在
return {Oop: Oop, version: a} 这类东西吧

零時差 2022-09-14 04:25:27

在js中没有实例变量,私有变量啥的,js的变量主要分为全局变量和局部变量,不过变量都有作用域,是用变量的作用域来区分。

老娘不死你永远是小三 2022-09-14 04:25:27

js中没有私有变量概念,自定义程序中对象属性都是外部可见的。
只能模拟一些私有变量特性,但不完整,比如参考 链接描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文