Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1067685
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T20:11:27+00:00 2026-05-16T20:11:27+00:00

I have the following code snippet which uses’event’ My fellow developers argue that the

  • 0

I have the following code snippet which uses’event’
My fellow developers argue that the scope of ‘var event’ is restricted to ‘if’ condition.
Is that true. How can I make this a better code

function prepForDrag(obj, event) {      
    if(event= "undefined"){  
        var event=obj || window.event;
    }
    if (event.altKey) {
        showShiftEditable(objCurrentEditRow, nCurrentEditableShift, lCurrentEditableBreak, true);    
        var thisForm = eval('document.${formName}');
        // ...
        enableDragState(obj);
        disableClickEditHandler(obj);  ## remove 'normal' line sched click handling in dd mode
    }
  }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T20:11:27+00:00Added an answer on May 16, 2026 at 8:11 pm

    That’s not true. In JavaScript there is no block scope, only function scope*. All variables introduced in a function are hoisted up to the top of the function.

    So this code:

    function prepForDrag(obj, event) {
        if (event = "undefined") {
            var event = obj || window.event;
        }
        // ...
    }
    

    gets interpreted somewhat like this:

    function prepForDrag(obj, event) {
        if (event = "undefined") {
            event = obj || window.event;
        }
        // ...
    }
    

    As Marcel Korpel‘s pointed out, declaring variable event is unnecessary in this case because event is already a local variable since it’s a function parameter. For futher details, read Ben Cherry’s article on JavaScript Scoping and Hoisting.

    Nevertheless there are two additional problems in your code.

    1. In the condition you used the = assignment operator instead of the == comparision operator. So the condition always evaluates to true.

    2. If you want to check whether a function argument was given, use the typeof event == 'undefined' statement.

    And I’m afraid there is even one more issue here. What is the purpose of the condition? Does argument obj anything to do with event? Modern browsers pass an event object to the event handler function as argument but some do not. To avoid the problem, the following pattern tends to be used:

    function prepForDrag(e) {
        var event = e || window.event;
        // ...
    }
    

    *NB: there is a let statement introduced in JavaScript 1.7 that provides block scope inside functions. Currently it’s only supported in Firefox.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.