Использование javascript на стороне сервера в классическом asp: что не так с этим? - PullRequest
4 голосов
/ 24 марта 2011

аналогично: Вставка объектов в глобальную область видимости в классическом ASP / Javascript


Попытка начать работу с использованием javascript в классическом ASP.Похоже, что с этим у меня есть некоторые "ошибки": может кто-нибудь, имеющий некоторый опыт в этом, сказать мне, что случилось с кодом "Blah2"?Кажется, что это "должно" работать, но, похоже, проблема с моим использованием "this" ...

<script language="javascript" runat="server">

 var Blah = {};
 Blah.w = function(s){Response.write(s);}

 Blah.w('hello'); //this works...


 var Blah2 = function(){
     this.w = function(s){Response.write(s);} 
     //line above gives 'Object doesn't support this property or method'
     return this;
 }();

 Blah2.w('hello');

</script>

Спасибо за любые указатели

Тим

1 Ответ

2 голосов
/ 24 марта 2011

Вам нужны парены вокруг вашей функции

var Blah2 = (function(){
    this.w = function(s){Response.write(s);} 
    //line above gives 'Object doesn't support this property or method'
    return this;
}());

Кроме того, this.w делает не то, что вы хотите. this на самом деле указывает на глобальный объект прямо здесь. Вы хотите:

var Blah2 = (function(){
    return {w : function(s){ Response.write(s); }};
}());

Или

bar Blah2 = new (function(){
   ...
...