gpt4 book ai didi

asp.net - 您如何处理 JavaScript 对象中的 ASP.NET 服务器回调?

转载 作者:行者123 更新时间:2023-11-30 13:43:32 24 4
gpt4 key购买 nike

我在使用服务器回调到 JavaScript 对象内的 Web 方法时遇到问题...

function myObject() {
this.hello = "hello";
var id = 1;
var name;

this.findName = function() {
alert(this.hello); //Displays "hello"
myServices.getName( id, this.sayHello );
}

this.sayHello = function(name) {
alert(this.hello); //Displays null <-- This is where I'm confused...
alert(name); //Displays the name retrieved from the server
}

this.findName();
}

因此,当创建一个新的 myObject 时,它会找到名称,然后在找到名称后调用 sayHello

服务例程运行并返回正确的名称。

问题是在从服务器返回名称并调用 this.sayHello 之后,它似乎不在同一个对象中(没有引用同一个 myObject 我们在查找名称时所在的位置)因为 this.hello 给出了一个 null...

有什么想法吗?

最佳答案

这不是网络服务问题。这是标准的 javascript 功能。在回调函数中,对“this”的引用成为对全局范围“window”对象的引用。解决方法如下:

function myObject() {
this.hello = "hello";
var id = 1;
var name;
var self = this; //reference to myObject
this.findName = function() {
alert(this.hello); /* Displays "hello" */
myServices.getName( id, this.sayHello );
}

this.sayHello = function(name) {
alert(self.hello); /* Displays "hello" instead of "undefined" */
alert(name); /* Displays the name retrieved from the server */
}

this.findName();
}

关于asp.net - 您如何处理 JavaScript 对象中的 ASP.NET 服务器回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/873685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com