如何调用类内类的方法
我创建了一个简单的类myClass
并添加了一个方法get_volume
。 如何在课堂内呼叫get_volume
?如何调用类内类的方法
我总是Uncaught ReferenceError: get_volume is not defined
var test = new myClass();
function myClass()
{
this.volume = get_volume();
}
myClass.prototype.get_volume = function()
{
return 100;
};
的jsfiddle: https://jsfiddle.net/k01stzaq/
执行顺序是什么导致你的问题。您在之前致电new myClass()
扩展了原型。
(另请注意,你试图引用get_volume
没有this
我认为这是一个拼写错误,但也许不是。)
订购代码如下:
function myClass(spielname) //Definition der Klasse "kicker"
{
this.volume = this.get_volume();
}
myClass.prototype.get_volume = function()
{
return 100;
};
var test = new myClass();
的构造函数本身被悬挂在你的原始文件中,所以new myClass()
调用工作,但test
的分配是在原型的扩展之前,因此在构造函数中没有get_value
属性,直到之后那点(protoytpe扩展)。
作为一个方面说明,JavaScript中常见的做法是使用以大写字母开头的函数名来表示函数用作构造函数。这不是由语言强制执行的。
首先声明构造函数和原型,然后初始化你的测试对象。
function myClass(spielname)
{
this.volume = this.get_volume();
}
myClass.prototype.get_volume = function() {
return 100;
};
var test = new myClass();
console.log(test.volume); //should print 100
希望这可以帮助!
您正在使用'set_volume',而不是'get_volume' – Black
已更改。请检查现在是否有作品! – Pierfrancesco
1.定义功能internaly:
function myClass(spielname) //Definition der Klasse "kicker"
{
this.getVolume= function(){
return this.volume;
}
this.volume = 100;
}
或
2. add方法原型:
function myClass(spielname) //Definition der Klasse "kicker"
{
this.volume = 100;
}
myClass.prototype.getVolume = function(){
return this.volume;
}
要调用get_volume
为全局函数,但它被定义为myClass
的一种方法。
因此get_volume
方法应在myClass
对象的上下文中调用。
更改您的代码,如下所示:
function myClass(spielname)
{
this.volume = this.get_volume();
}
myClass.prototype.get_volume = function()
{
return 100;
};
var test = new myClass();
我得到“get_volume is not defined(...)”not set_volume。但get_volume未定义 – Pierfrancesco
请拨打 – Patrick2607