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, время: 03:43. |