Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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_Function_Oop_Invoke - Fatal编程技术网

javascript面向对象函数调用初学者问题

javascript面向对象函数调用初学者问题,javascript,function,oop,invoke,Javascript,Function,Oop,Invoke,我在创建javascript对象时遇到了一个问题, 当一个函数调用对象中的另一个函数时,我们需要使用“this”吗 MyObject = function() { this.function_one = function(param) { return param + param; }; this.function_two = function(param) { return this.function_one(param) * t

我在创建javascript对象时遇到了一个问题, 当一个函数调用对象中的另一个函数时,我们需要使用“this”吗

MyObject = function() {

    this.function_one = function(param) {  
        return param + param;
    };

    this.function_two = function(param) {
        return this.function_one(param) * this.function_one(param);
        // when invoking function_one, do i need to use 'this' ????
    };

}

在这种情况下,是的。这是因为您将匿名函数指定为新构造对象的属性,这是访问它的唯一方法

可以使
此功能中不需要
。功能二

// Inside the MyObject constructor:
    function function_one(param) {  
        return param + param;
    }
    // Optional, if you don't care about being able to call
    // function_one from outside the closure
    this.function_one = function_one;
这使得
function\u one
可以作为通过调用构造函数创建的闭包中的变量使用;不过,让函数以两种不同的方式(通过自由变量和对象属性)调用并不是一种常见的习惯用法


我建议您阅读,以便更好地理解将方法附加到对象的不同方式。

是的,与Java/C#/C++不同,您必须指定此方法。

哇……感谢您的快速回复,我尝试使用谷歌搜索,但我不知道应该搜索什么关键字……非常感谢。