Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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“0”;这";关键词_Javascript - Fatal编程技术网

嵌套函数不识别javascript“0”;这";关键词

嵌套函数不识别javascript“0”;这";关键词,javascript,Javascript,我无法让嵌套函数识别“this”关键字。这里有一个例子。我有一个构造函数: function person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.changeName = changename; } function changeName (name) { this.lastname = name;

我无法让嵌套函数识别“this”关键字。这里有一个例子。我有一个构造函数:

function person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.changeName = changename;
}
function changeName (name) {
     this.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(this.lastName); //undefined
        }
     }
我有另一个带有嵌套函数的函数:

function person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.changeName = changename;
}
function changeName (name) {
     this.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(this.lastName); //undefined
        }
     }

}这是因为
在事件处理程序中,这个
窗口
。您可以在
changeName
范围中定义别名,如下所示:

function changeName (name) {
     var p = this;
     p.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(p.lastName);
        }
     }
}

这是因为在事件处理程序中,
这个
窗口
。您可以在
changeName
范围中定义别名,如下所示:

function changeName (name) {
     var p = this;
     p.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(p.lastName);
        }
     }
}

这是因为在事件处理程序中,
这个
窗口
。您可以在
changeName
范围中定义别名,如下所示:

function changeName (name) {
     var p = this;
     p.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(p.lastName);
        }
     }
}

这是因为在事件处理程序中,
这个
窗口
。您可以在
changeName
范围中定义别名,如下所示:

function changeName (name) {
     var p = this;
     p.lastname = name;
     $.post("display.php", "some_data", function(data,status) {
        if (status=="success") {
               alert(p.lastName);
        }
     }
}

该函数从需要使用.bind或其“hack”的内部函数设置:

或者通过使用


这是一个非常好的

函数从您需要使用的内部函数设置。bind或其“hack”:

或者通过使用


这是一个非常好的

函数从您需要使用的内部函数设置。bind或其“hack”:

或者通过使用


这是一个非常好的

函数从您需要使用的内部函数设置。bind或其“hack”:

或者通过使用


这是一个非常好的

不是说类名的常规是大写(即
人名
,而不是
人名
),也不是说类名的常规是大写(即
人名
,而不是
人名
).并不是说类名通常的约定是大写(即
人名
,而不是
人名
)。也不是说类名通常的约定是大写(即
人名
,而不是
人名
)。这不是“继承的”,它是由函数的调用方式设置的。@RobG-同意,用词不当。谢谢Sten Muchow。很有道理。这不是“继承的”,而是由函数的调用方式决定的。@RobG-同意,用词不当。谢谢Sten Muchow。很有道理。这不是“继承的”,而是由函数的调用方式决定的。@RobG-同意,用词不当。谢谢Sten Muchow。很有道理。这不是“继承的”,而是由函数的调用方式决定的。@RobG-同意,用词不当。谢谢Sten Muchow。这很有道理。