• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: difference between property and variable
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: difference between property and variable


  • Subject: Re: difference between property and variable
  • From: "Mark J. Reed" <email@hidden>
  • Date: Mon, 10 Dec 2007 23:11:25 -0500

 Apart from weird implementation-related performance differences, I
consider the most important distinguishing feature of properties to be
that they keep their values between executions (if the script is not
recompiled in between, anyway).


On 12/10/07, has <email@hidden> wrote:
> Justin Laden wrote:
>
> > Currently I am reading over Matt's O'Reilly book, and I could use a
> > better understanding of what separates a Property from a Variable.
>
> Locals, properties and globals are all kinds of variables. What
> differentiates them is scope [1]:
>
> - A local variable's scope (i.e. lifetime and where it can be accessed
> from) is limited to the handler in which it's defined: only code in
> the handler can use that variable, and once the handler code finishes
> running that variable ceases to exist.
>
> - A property's scope is limited to the script object in which it's
> defined. e.g. If you define a property in your main script, that
> property will cease to exist when the script finishes running and
> likewise ceases to exist. (Properties are equivalent to module
> variables and instance variables in other languages.)
>
> - A global variable has the widest scope of all, extending throughout
> an entire program regardless of where it's defined.
>
> Unless you use additional script objects to define modules or for
> object-oriented programming (and most folk don't), the difference
> between properties and globals is basically a non-issue for you.
> Properties do have the additional benefit in that they allow you to
> define an initial value at compile time, which is generally convenient
> and just good coding practice [2], so as a rule of thumb I'd recommend
> sticking to properties for storing values that need to be accessible
> throughout a script, locals for anything else, and ignore globals
> completely.
>
> HTH
>
> has
>
> [1] And warts, but I won't go into all of those here, as it's better
> to get a clear, logical understanding of the important concepts in
> place before you have to muck it up again learning about all the
> practical flaws in AppleScript's implementation.
>
> [2] Globals are undefined until you assign values to them, and
> attempting to access a global before a value is assigned to it will
> result in a error. They're also an open invitation for hard-to-spot
> bugs if you do do use modules/OOP in your programs. IOW, globals are a
> design mis-feature that can and should be avoided, since locals and
> properties will do everything you need if you write good code (and if
> they don't do everything you need, that's a sign that you're writing
> bad code and should address that accordingly).
>
> --
> http://appscript.sourceforge.net
> http://rb-appscript.rubyforge.org
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> AppleScript-Users mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> Archives: http://lists.apple.com/archives/applescript-users
>
> This email sent to email@hidden
>


--
Mark J. Reed <email@hidden>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden

  • Follow-Ups:
    • Re: difference between property and variable
      • From: Brennan <email@hidden>
References: 
 >Re: difference between property and variable (From: has <email@hidden>)

  • Prev by Date: Re: difference between property and variable
  • Next by Date: Re: What makes AppleScript difficult
  • Previous by thread: Re: difference between property and variable
  • Next by thread: Re: difference between property and variable
  • Index(es):
    • Date
    • Thread