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

  • Home
  • SEARCH
  • 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 7660395
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T13:27:36+00:00 2026-05-31T13:27:36+00:00

When I run the following code I get told, that talk is not a

  • 0

When I run the following code I get told, that talk is not a function.
Why?

function cat(name) {
    talk = function() {
        alert(" say meeow!" )
    }
} 

cat("felix");
cat.talk()
  • 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-31T13:27:36+00:00Added an answer on May 31, 2026 at 1:27 pm

    What you’re trying to do is create an object for which the function is a constructor, but what the code is actually doing is setting the variable talk to a function. You want:

    function cat(name) {
        this.talk = function() {
            alert(" say meeow!" )
        }
    } 
    
    var myCat = new cat("felix");
    myCat.talk()
    

    edit:

    Relevant javascript tech talk: http://www.youtube.com/watch?v=ljNi8nS5TtQ

    He talks about constructing objects with functions at about 30 minutes in. The code he posts is:

    function Circle(radius){
        this.radius = radius;
        this.area = function(){
            return this.radius * this.radius * Math.PI;
        };
    }
    var instance = {};
    Circle.call(instance, 5);
    instance.area(); // ==> 78.5398
    var instance2 = new Circle(5);
    instance2.area() // ==> 78.5398
    instance instanceof Circle // ==> false
    instance2 instanceof Circle // ==> true
    

    And the relevant quote:

    The new keyword is just a shorthand that is saying “make a new object
    and call the constructor on it … the new keyword has no other
    meaning”

    In other words, he’s saying that when using the new keyword, you’re defining your variable as an object and calling the function in the context of that object (this points to your object).

    The extra thing that the new keyword does is set the prototype of the newly made object to the prototype of the constructor. So if we do:

    function Circle(radius){
        this.radius = radius;
        this.area = function(){
            return this.radius * this.radius * Math.PI;
        };
    }
    var instance = {};
    Circle.call(instance, 5);
    instance.__proto__ = Circle.prototype; // we set the prototype of the new object to that of the constructor
    instance.area(); // ==> 78.5398
    var instance2 = new Circle(5);
    instance2.area() // ==> 78.5398
    instance instanceof Circle // ==> true // this is now true 
    instance2 instanceof Circle // ==> true
    

    instance instanceof Circle is now true.

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

Sidebar

Related Questions

When I run the following code I get a error #1009 saying that the
When I run the following code, I get the exception below: ''# NOTE: ExcelApp
I'm trying to run the following code, but get an error in the gameLoop
When I try to run a routine I get the following error: Error Code:
When I try to run the following code I get a seg fault. I've
When I try to run the following code I get a Conversion from string
if i try to run following code in sql server 2005 i get error
When I run following code: node = $('.period') alert(node.width() + ' ' + node.css('width'))
If you run the following code you get the output: The answer is: <br>
When I run the following code on one machine I get tomcat implementation of

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.