在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C++  HTML/ 幫忙看下這個變量在面向對象里叫什么?

幫忙看下這個變量在面向對象里叫什么?

幫忙看看下面的js oop代碼中 對私有變量、實例變量、靜態(tài)變量、公共變量詮釋的對不對。
另外幫忙看下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靜態(tài)方法

  return Oop
})()
回答
編輯回答
奧特蛋
嚴格來講,JavaScript 中沒有私有成員的概念;所有對象屬性都是公有的。不過,倒是有一個私有變量的概念。任何在函數中定義的變量,都可以認為是私有變量,因為不能在函數的外部訪問這些變量。

私有變量包括函數的參數、局部變量和在函數內部定義的其他函數。

    var Oop = (function () {
    
      var a = 'A'// 靜態(tài)私有變量,因為每個 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靜態(tài)方法
    
      return Oop
    })()

另外,還有個特權方法

function MyObject(){
//私有變量和私有函數
    var privateVariable = 10;
    function privateFunction(){
        return false;
    }
//特權方法(可以訪問私有變量和函數的公有方法)
    this.publicMethod = function (){
        privateVariable++;
        return privateFunction();
    };
}

摘自JavaScript高級程序設計-第3版-中

2017年1月13日 20:39
編輯回答
陌顏

a這個變量在 java 等編程語言中應該是不存在的,1 他不在Oop里面 所以不算私有變量和實例變量,他也不會被類所調用,也不屬于靜態(tài)變量,更不會被外界調用了
但是可以把 版本信息 作者與邏輯無關的 什么的 存儲在a 這種變量中 然后在
return {Oop: Oop, version: a} 這類東西吧

2017年2月22日 21:48
編輯回答
逗婦惱

js中沒有私有變量概念,自定義程序中對象屬性都是外部可見的。
只能模擬一些私有變量特性,但不完整,比如參考 鏈接描述

2018年5月25日 20:58
編輯回答
忠妾

在js中沒有實例變量,私有變量啥的,js的變量主要分為全局變量和局部變量,不過變量都有作用域,是用變量的作用域來區(qū)分。

2017年9月28日 02:04