Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 20:40:57 - Adrian McCool, i forum javascript/dhtml, Tråden har 7 Kommentarer och lästs av 663 personer

Tjena!

Jobbar lite på ett system med hjälp av OOP i javascript.
Problemet jag har är att ett värde i den högst förekommande
classen av alla objekt, denna kan inte ändras i en ärvd method
som subclassen använder sig av.
Hmm det vart rörigt, rätt nytt för mig med oop i javascript så
alla termer kanske inte blir rätt.


Så här fungerar det ungefär.

function SuperClass(){
this.bCanSave = true;
this.showSaveMenu = showSaveMenu ;
}

function SubClass(obj){
this.oElm = document.getElementById(obj);
}
SubClass.prototype = new SuperClass;

function showSaveMenu(){
this.bCanSave = false;
}

// Denna körs när alla element är färdigladdade.
function intiSystem(){
mysuperclass = new SuperClass();
mysubclass = new SubClass("testdiv");
}


när jag sedan använder mig av

go

Så blir inte this.bCanSave false...även fast den är prototype
av superclassen.


Någon som har en lösning på detta problem så skulle jag
vara grymt tacksam, suttit ett tag med detta nu och håller
på att bryta samma!! aaahhh :)


Mvh
Adrian








Svara

Sv: Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 21:24:30 - Dmitriy Taranoff

JScript is not an OOP language )
But you can emulate OOP functionality.
Try this code

-test.js---------->8--------------

function Parent()
{
this.intVal = 10;
this.boolVal = true;
this.strVal = "Hej";
return this;
}

function Child()
{
var result = new Parent();
result.boolVal = false; // this overloads Parent.boolVal
result.doubleVal = 10.1;
return result;
}

var p = new Parent();
WScript.Echo(p.boolVal);
var ch = new Child();
WScript.Echo(ch.boolVal);


------------------>8--------------

Tested with JScript 5.5


Svara

Sv: Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 22:15:44 - Per Persson

Jag tycker att den blir false för mig när jag prövar. Hur ser du att den inte blir det?


Svara

Sv:Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 22:20:02 - Adrian McCool

Yes I know its not a pure OOP language, but it's object-based. :)
So there is a bit of OOP functionality still there.

Your code does'nt help me, it's not following the prototype based
standard i'm using. I don't want to re-write my code structure, it's about
500 lines allready.

What i'm trying to do is assign a value to a superclass object which should
be able to be set under any object following the prototype chain.
There must be a way.


Thanks anyway.


Svara

Sv:Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 22:28:29 - Adrian McCool

Tjena!

Jo jag testade den koden som jag hade skrivit och den funka faktiskt. Måste vara något
annat fel jag inte kan hitta. Min kod är bra mycket längre än det exemplet jag visade.

Tack för att du testade den :)


Svara

Sv: Problem med prototype och ärvd klass/metod

Postades av 2005-05-31 22:57:52 - Adrian McCool

Tjena igen.


Nu har jag kommit på problemet, vilket jag trodde det byggde på förut, fast
var inte säker.

När jag kör denna kod:

<html>
<head>
<title>Untitled</title>
<script>
function SuperClass(){
this.showSaveMenu = showSaveMenu ;
this.testValue = testValue ;
this.bCanSave = true;
}

function SubClass(obj){
}
SubClass.prototype = new SuperClass;

function showSaveMenu(){
alert(this.bCanSave)
this.bCanSave = false;
}

function testValue(){
alert(this.bCanSave);
}

// Denna körs när alla element är färdigladdade.
function intiSystem(){
mysuperclass = new SuperClass();
mysubclass1 = new SubClass();
mysubclass2 = new SubClass();
}

</script>
</head>

<body onload="intiSystem();">

Assign false via mysubclass1
<br>
<br>
Testa värde mysubclass1
Testa värde mysubclass2

</body>
</html>


Så blir det inte rätt, dvs mysubbclass1 kan inte sätta ett värde för
sitt parent objekt i kedjan, som ett annat objekt ur samma klass
också kommer ärva.

mysubclass1.bCanSave blir false
men
mysubclass2.bCanSave är fortfarande true

Vad kan detta bero på?
Testa koden själva...


Svara

Sv:Problem med prototype och ärvd klass/metod

Postades av 2005-06-01 07:24:11 - Simon Dahlbacka

På grund av att bCanSave är en instansvariabel och inte en klassvariabel.


Svara

Sv: Problem med prototype och ärvd klass/metod

Postades av 2005-06-01 12:48:46 - Adrian McCool

Okej, hmm jo jag läste lite om det där, och den reserverar ett värde för varje
instans så att .bCanSave för varje object får ett eget värde även fast det inte
är satt i själva funktionen.

Vad jag har förstått så går detta inte att göra så mycket åt. Har nu löst
det med hjälp av följande:


function super(){
this.bCanSave = true;
}

function sub(){
this.base = super;
}
sub.prototype = new super;

mysuper = new super;
mysub1 = new sub;
mysub2 = new sub;

mysub1.base.bCanSave = false

nu blir både mysub1 och mysub2 false.

Om någon annan här har en annan lösning då via prototype så skulle
jag vara väldigt tacksam.


Mvh
Adrian


Svara

Nyligen

  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l
  • 17:00 Bra spelsajt med bonusar
  • 15:51 Slappna av
  • 15:17 Onlineunderhållning på fritiden
  • 11:13 Online Kasino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 102
27 955
271 726
13 916
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next