Javascript:Function-返回一个对象将使this.variable无效
我正在使用javascript。声明实例变量“this.variable”将一直有效,直到我的函数返回一个对象为止。返回字符串,数字不影响它。在返回一个对象的情况下,实例变量不再工作,变成“未定义”。请你能帮帮我吗!(在firefox和chrome最新版本下测试的网站上查找示例)Javascript:Function-返回一个对象将使this.variable无效,javascript,function,this,instance-variables,Javascript,Function,This,Instance Variables,我正在使用javascript。声明实例变量“this.variable”将一直有效,直到我的函数返回一个对象为止。返回字符串,数字不影响它。在返回一个对象的情况下,实例变量不再工作,变成“未定义”。请你能帮帮我吗!(在firefox和chrome最新版本下测试的网站上查找示例) 此在函数范围内为DOMWindow 对象范围内的此是对象。新建操作符将创建一个新对象并对其应用函数-此在函数范围内指的是该对象 但是当函数在没有new的情况下被调用,或者包含return语句时,它将不会作为“构造函数”
此
在函数范围内为DOMWindow
对象范围内的此
是对象。新建操作符将创建一个新对象并对其应用函数-此
在函数范围内指的是该对象
但是当函数在没有new的情况下被调用,或者包含return语句时,它将不会作为“构造函数”执行
此
将指向执行上下文,通常是窗口
对象。您以错误的方式使用构造函数。构造函数本身不应该返回任何内容。您可以使用prototype
属性来声明“class”/object方法,也可以像以前一样在构造函数中设置它们:
function Constructor(value) {
this.variable = value;
}
var obj = new Constructor('test');
obj.variable; // -> Returns 'test';
与声明对象的方法相同:
function Constructor(value) {
this.variable = value;
this.say = function(something) {
return "I say: " + something;
};
}
或原型方式:
function Constructor(value) {
this.variable = value;
}
Constructor.prototype.say = function(something) {
return "I say: " + something;
};
当然,这是一个通用且有点糟糕的示例,但您可能明白了这一点:)非常感谢,这是我的解决方案!!使用return语句调用函数不会作为“构造函数”执行。谢谢您的时间和示例!
function Constructor(value) {
this.variable = value;
}
Constructor.prototype.say = function(something) {
return "I say: " + something;
};