Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象中的私有方法_Javascript_Oop_Object_Private - Fatal编程技术网

javascript对象中的私有方法

javascript对象中的私有方法,javascript,oop,object,private,Javascript,Oop,Object,Private,我有一个对象看起来像这样: var obj ={ property : '', myfunction1 : function(parameter){ //do stuff here } } 我需要设置一些私有属性和函数,这些属性和函数不能从对象外部访问/查看。它不适用于任何人 var属性:,或var myFunction1 下一个问题是,如果我在对象内部或外部调用函数,我总是必须使用obj.myfunction()来执行此操作。我想将“this”附加到一个变量。喜欢se

我有一个对象看起来像这样:

var obj ={

  property : '',
  myfunction1 : function(parameter){
     //do stuff here
  }
}
我需要设置一些私有属性和函数,这些属性和函数不能从对象外部访问/查看。它不适用于任何人
var属性:,
var myFunction1

下一个问题是,如果我在对象内部或外部调用函数,我总是必须使用
obj.myfunction()
来执行此操作。我想将“this”附加到一个变量。喜欢
self:this
。并在对象内部使用
self.property
self.myfunction
调用我的函数和变量


怎么做?:)

有很多方法可以做到这一点。简言之:如果您在另一个函数中定义了一个函数,那么您的内部函数将是私有的,只要您不提供对If的任何引用

(function obj(){
    var privateMethod = function() {};
    var publicMethod = function() {
        privateMethod();
        ...
    };

    return {
        pubMethod: publicMethod
    }
}());

使用闭包。JavaScript有,所以您必须使用函数

var obj = function () {
    var privateVariable = "test";
    function privateFunction() {
        return privateVariable;
    }

    return {
        publicFunction: function() { return privateFunction(); }
    };
}();

此链接可在以后帮助您:
var obj = function () {
    var privateVariable = "test";
    function privateFunction() {
        return privateVariable;
    }

    return {
        publicFunction: function() { return privateFunction(); }
    };
}();