with-love-from-siberia,
Падает совсем не потому, а из-за использования WScript.Echo там где не надо. Вот так все нормально, хоть запускай через js, хоть через wsf
(function(that)
{
that.a = 1;
})(this);
WScript.Echo( a );
|
WScript - не JavaScript'овый объект, а WScript.Echo - не функция. Попробуйте, напр.
WScript.Echo( typeof WScript.Echo ); а WScript.Echo( typeof WScript ); или WScript.Echo( WScript.Echo instanceof Function ); вообще падают, чего (с точки зрения JavaScript) происходить не должно. |
Цитата:
var global=(function(){return this;})();
"use strict";
// и дальше все стрикт
|
Блин, что ж такое.
function test() { window.a = 1 alert(a) } alert(a) внутри функции выводит а снаружи нет.( |
Цитата:
(function(that)
{
that.a = function()
{
};
})(this);
a();
Понятно, что это искусственный пример, но он иллюстрирует проблему. |
with-love-from-siberia,
Ваша правда. Кста, так работает:
(function(that)
{
that.a = function()
{
WScript.Echo( "It works!" );
};
})(this);
a.call();
|
Здравствуйте. Понимаю - тема устарела, но все же. У меня похожий код. Нужно переменную socket сделать глобальной. Прошу помощи...
"use strict";
(function()
{
// ======== global vars from config ========
var srvaddress = url_base + 'include/socket/';//url каталога
var startserveraddress = srvaddress+'wsstart.php';
var chataddr = 'ws://localhost:8889';
// ======== private vars ========
var socket;
var xhttp;
////////////////////////////////////////////////////////////////////////////
var init = function()
{
//https://learn.javascript.ru/websockets Docs
socket = new WebSocket(chataddr + '/' + cookies + '/516616546465464');
socket.onopen = connectionOpen; //Соединение установлено
socket.onmessage = messageReceived; //Получены данные
//socket.onerror = errorOccurred;
//socket.onopen = connectionClosed;
document.getElementById("msg-send").onclick = function()
{
//sendMessage();
messagesend();
};
};
function messagesend()
{
}
function connectionOpen()
{
socket.send("{\"act\":\"start\", \"msg\":\"Connection with "+chataddr+". Подключение установлено обоюдно, отлично!\"}");
}
function messageReceived(e)
{
var json = eval("(" + e.data + ")");
}
function connectionClose() {
socket.close();
}
return{
// ---- onload event ----
load : function () {
window.addEventListener('load', function () {
init();
}, false);
}
}
})().load();
|
Ну так сотри var перед ней и она вылезет за пределы функции. Если там еще есть функция снаружи, то напиши явно window.socket= и далее по тексту. Ты же читал тему сначала или забил?
|
| Часовой пояс GMT +3, время: 20:07. |