-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek <p...@s...com>
Newsgroups: pl.comp.www
Subject: Javascript - jak tworzyć obiekty w strict mode?
Date: Sun, 20 Sep 2015 11:57:51 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 46
Message-ID: <mtlvuv$3t4$1@news.icm.edu.pl>
NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.icm.edu.pl 1442743071 4004 89.69.222.145 (20 Sep 2015 09:57:51 GMT)
X-Complaints-To: u...@n...icm.edu.pl
NNTP-Posting-Date: Sun, 20 Sep 2015 09:57:51 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101
Thunderbird/31.6.0
Xref: news-archive.icm.edu.pl pl.comp.www:403019
[ ukryj nagłówki ]Witam,
Mam problem w realizacji prywatnych funkcji w strict mode. Oto kod:
"use strict";
function test()
{
var x=5;
var test3=function()
{
console.log(this,x);
};
var test2=function()
{
console.log(this,x);
test3();
};
test2();
test2.call(this);
}
costam=new test();
Operator this nie jest dostępny w test2 przy wywołaniu test2() ale jest
dostępny przy wywołaniu test2.call(this). Wartość X zawsze jest
poprawnie widziana więc test2 w obu przypadkach działa w obrębie obiektu
test.
Jeśli wywołamy test2 bez "call" to z poziomu test2 nie będziemy w stanie
wywołać metody test3 tak aby był widoczny w niej operator this.
W/g tego przykładu, strict mode może zatem prowadzić do usterek, które
nie ujawnią się podczas walidacji kodu poprzez JSHint jak i działanie
funkcji zależy od sposobu jej wywołania. Aż prosi się o "tajemnicze"
błędy które programiście nie ujawnią się a użytkownikowi tak, bo wykonał
np. nieco odmienną akcję niż testerzy i ta sama funkcja raz zadziałała,
raz nie. Wydaje mi się iż musi istnieć jakaś inna składnia wywołań metod
prywatnych aby uniknąć takich problemów. Macie pomysły?
--
Pozdrawiam,
Marek
Następne wpisy z tego wątku
- 20.09.15 18:05 Borys Pogoreło
- 20.09.15 18:27 Marek
- 20.09.15 18:48 Marek
- 20.09.15 21:53 Borys Pogoreło
- 20.09.15 21:55 Borys Pogoreło
- 21.09.15 11:43 Marek
- 21.09.15 13:36 Marek
- 27.09.15 18:46 Borys Pogoreło
- 28.09.15 09:02 n...@t...net.pl
- 28.09.15 15:37 Marek
- 28.09.15 15:46 Marek
- 28.09.15 18:22 Borys Pogoreło
- 28.09.15 20:42 Cezary Tomczyk
- 28.09.15 22:00 Borys Pogoreło
- 29.09.15 10:17 n...@t...net.pl
Najnowsze wątki z tej grupy
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
- Czy istnieje jakiś emulator przeglądarek pod Mac'a?
- taka sama konfiguracja dla localhost i produkcji
Najnowsze wątki
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=