Javascript 如何在对象内调用方法
我试图在对象中创建一个属性,我希望该值是从同一函数中的方法返回的值:Javascript 如何在对象内调用方法,javascript,object,Javascript,Object,我试图在对象中创建一个属性,我希望该值是从同一函数中的方法返回的值: var model = { generateRandomNumber: function(){ var randomNumber = Math.floor(Math.random() * 101); return randomNumber; }, generatedNumber: this.generateRandomNumber() }; 但是我得到一个错误:uncaughtty
var model = {
generateRandomNumber: function(){
var randomNumber = Math.floor(Math.random() * 101);
return randomNumber;
},
generatedNumber: this.generateRandomNumber()
};
但是我得到一个错误:uncaughttypeerror:undefined不是一个函数
我只想让新属性包含从同一对象中的方法返回的任何内容 在对象存在之前,您无法访问该对象(调用函数) 您必须分两步执行此操作:
var model = {
generateRandomNumber: function(){
var randomNumber = Math.floor(Math.random() * 101);
return randomNumber;
}
};
model.generatedNumber = model.generateRandomNumber()
由于该方法不依赖于此(这就引出了为什么它首先是一个对象方法的问题),因此可以单独定义函数
function generateRandomNumber (){
var randomNumber = Math.floor(Math.random() * 101);
return randomNumber;
}
var model = {
generateRandomNumber: generateRandomNumber,
generatedNumber: generateRandomNumber()
};
在对象存在之前,您无法访问该对象(以调用函数) 您必须分两步执行此操作:
var model = {
generateRandomNumber: function(){
var randomNumber = Math.floor(Math.random() * 101);
return randomNumber;
}
};
model.generatedNumber = model.generateRandomNumber()
由于该方法不依赖于此(这就引出了为什么它首先是一个对象方法的问题),因此可以单独定义函数
function generateRandomNumber (){
var randomNumber = Math.floor(Math.random() * 101);
return randomNumber;
}
var model = {
generateRandomNumber: generateRandomNumber,
generatedNumber: generateRandomNumber()
};
在对象声明中无法访问函数GeneratorDomainNumber,因为尚未完全解析对象文字。试试这个:
var obj = {
generateRandomNumber: function() {
return this.generatedRandomNumber = Math.floor(Math.random() * 101);
}
}
obj.generateRandomNumber();
alert(obj.generatedNumber);
在对象声明中无法访问函数GeneratorDomainNumber,因为尚未完全解析对象文字。试试这个:
var obj = {
generateRandomNumber: function() {
return this.generatedRandomNumber = Math.floor(Math.random() * 101);
}
}
obj.generateRandomNumber();
alert(obj.generatedNumber);
您的问题在于在对象内使用this.generateRandomNumber进行引用。。那不行。为什么不这样做:
var model = {
generateRandomNumber: function() {return Math.floor(Math.random()*101;}, generatedNumber: Math.floor(Math.random()*101};
这也会产生同样的效果。您的问题在于在对象中使用This.generateRandomNumber进行引用。。那不行。为什么不这样做:
var model = {
generateRandomNumber: function() {return Math.floor(Math.random()*101;}, generatedNumber: Math.floor(Math.random()*101};
这也会产生同样的效果