Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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 - Fatal编程技术网

Javascript 在类方法中使用此关键字

Javascript 在类方法中使用此关键字,javascript,Javascript,为什么我将此值作为[对象窗口]来获取?它是一个窗口对象吗?这是因为init不是一个“类方法”——它是一个在构造函数中定义和调用的函数。这并不意味着它对其他函数有任何特殊性 您需要在mC函数的“this”上下文中调用init函数: var mC = function(map){ var init = function(iMap){ alert("Init " + this + " with"); } init(map); }; var m = new mC(

为什么我将此值作为[对象窗口]来获取?它是一个窗口对象吗?

这是因为init不是一个“类方法”——它是一个在构造函数中定义和调用的函数。这并不意味着它对其他函数有任何特殊性

您需要在mC函数的“this”上下文中调用init函数:

var mC = function(map){
    var init = function(iMap){
        alert("Init " + this + " with");
    }
    init(map);
};
var m = new mC({});
或者,您需要使'init'成为this或this.prototype的成员,这将自动使用它所属的对象作为'this'


如果这让你感到困惑,你可能想用谷歌搜索一下JavaScript的this关键字:)

这是因为init不是一个“类方法”——它是一个在构造函数中定义和调用的函数。这并不意味着它对其他函数有任何特殊性

您需要在mC函数的“this”上下文中调用init函数:

var mC = function(map){
    var init = function(iMap){
        alert("Init " + this + " with");
    }
    init(map);
};
var m = new mC({});
或者,您需要使'init'成为this或this.prototype的成员,这将自动使用它所属的对象作为'this'


如果这让你感到困惑,你可能想用谷歌搜索一下JavaScript的this关键字:)

你还希望得到什么


您将init定义为一个函数,然后在全局空间中调用它,这就是为什么您得到了您所做的。您没有将其附加到mC类。

您还希望得到什么


您将init定义为一个函数,然后在全局空间中调用它,这就是为什么您得到了您所做的。您没有将其附加到mC类。

是的!由于
init
mC
的一个变量,它将共享其作用域(当前是全局作用域,也是
窗口
对象)

不过。如果更改为以下内容:

init.call(this);

然后
这个
init
里面将是对您实例的引用。

是的!由于
init
mC
的一个变量,它将共享其作用域(当前是全局作用域,也是
窗口
对象)

不过。如果更改为以下内容:

init.call(this);

然后,
init中的
this
将是对您实例的引用。

另请参见:另请参见:它是关于如何调用函数的,例如
init()
,没有基本对象(不作为任何可访问对象的属性绑定),因此它中的
这个
值将指向全局对象,无论您在作用域链中的什么位置。它是关于函数如何调用的,例如
init(),没有基本对象(未绑定为任何可访问对象的属性),因此它中的
值将指向全局对象,无论您在范围链中的何处。