Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 方法、功能和对象_Javascript_Function_Object_Methods - Fatal编程技术网

Javascript 方法、功能和对象

Javascript 方法、功能和对象,javascript,function,object,methods,Javascript,Function,Object,Methods,在过去的几周里,我一直在做代码学院(CodeAcademy),目前我正在做Javascript基础知识的对象、函数和方法部分(42%)。我真的没有跳过任何一点,因为我真的想好好学习。但是,我在理解函数、方法和对象的使用方面遇到了一些问题 我知道对象是用来存储信息的,比如真实世界的信息: personObj=new Object(); personObj.firstname="John"; personObj.lastname="Doe"; personObj.age=30; perso

在过去的几周里,我一直在做代码学院(CodeAcademy),目前我正在做Javascript基础知识的对象、函数和方法部分(42%)。我真的没有跳过任何一点,因为我真的想好好学习。但是,我在理解函数、方法和对象的使用方面遇到了一些问题

我知道对象是用来存储信息的,比如真实世界的信息:

personObj=new Object();     
personObj.firstname="John";
personObj.lastname="Doe";
personObj.age=30;
personObj.eyecolor="blue";
另外,构造函数到底是什么?这是什么意思

我还学会了创建函数,方法是

var whatever = new Function(){
 then whatever here
}
但在代码学院,他们开始使用以下代码编写代码:

function whatever(){
Then Whatever
}
有什么区别?我希望有人能用“傻瓜的Javascript”类型来解释


再次感谢

将构造函数看作是为您设置对象的函数,然后返回它们。也就是说,它们指定对象的方法(它们可以做的事情)和属性(描述它们的事情)


使用功能原型是非常不明智的;创建匿名函数的常用方法是通过
function(){/*stuff*/}
(大小写很重要!)。说到这一点,第一种方法将创建一个匿名函数(即内部没有名称——您可以使用
name
属性进行检查),而第二种方法将创建一个命名函数(因此将设置name属性)。

1.在一般面向对象编程中,构造函数准备一个对象以供使用。它们在类的创建时被调用,并用于实例化类

在JavaScript中,构造函数只是一个常规函数。例如:

// constructor with parameter `name`

function cat(name) {
 this.name = name;
 this.talk = function() {
    alert( this.name + " say meeow!" )
 }
} 

cat1 = new cat("nyan")
cat2 = new cat("puss")

cat1.talk() // nyan say meeow!
cat2.talk() // puss say meeow!
2.函数声明和函数表达式之间的主要区别是:

//expresssion

whatever(); // results in error
var whatever = new Function(){
 then whatever here
}
-

构造器到底是什么

它们是用于初始化对象的函数。在JavaScript中,它们与一起实例化新对象。但是,不要使用
newobject()首选空对象文本
{}

这是什么意思

引用当前上下文对象。在“方法”中,这通常是对象本身,但一旦调用独立函数,它可能会指向其他地方(最常见的错误#2)

我还学会了创建函数,方法是
newfunction(){…}

我希望你没有。这在语法上是无效的。您可以使用字符串中的
函数
构造函数创建函数,但您永远不应该这样做

在代码学院,他们开始使用以下代码编写代码:

function whatever(){
Then Whatever
}
函数which(){…}

这是声明函数的标准方法。使用它。然而,第二种可能是函数表达式,它们通常甚至是匿名的。请参见,一个快速示例:

function a() {
    ...
}
setTimeout(a, 500);
// or
setTimeout(function  () {
    ...         // ^^ a name could be inserted here if you need
                // to reference the function from inside
});

嘿,我的朋友,我也经历过同样的过程:)
看看我能不能回答你的问题

  • “我知道对象是用来存储诸如真实世界信息之类的信息的”
    这并不完全准确。当codecademy以这种方式描述对象时,他们试图向您展示一个可以使用对象的真实应用程序。
    一个对象实际上很像一个函数,但有一些区别:一个对象是“实例化的”。当像这样创建对象时
    personObj=newobject()或“构造的”(我一会儿就会谈到),像这样
    var newPerson=newPerson(参数),它创建对象的特定实例。对象本身只是一个想法,但当您调用或“实例化”一个对象时,您正在创建一个特定的对象实例,该实例可以在代码中的其他地方引用。请参阅下一个答案以获得澄清

  • “另外,构造函数到底是什么?这意味着什么?”
    构造函数类似于模板或蓝图。它是作为一个想法的对象,当你创建一个新对象时,构造函数可以通过预先定义新对象的一些特性来为你节省一些时间。它为对象提供了“方法”和属性(如
    .name
    )。一个方法就像一个有家的函数!方法是属于只能在引用对象时调用的对象的函数。函数的属性是特定于对象的变量,或该对象的“公共变量”。点表示法是一种查看对象内部并引用其属性的方法。当您使用
    this.name
    时,您正在创建一个属于Person对象的公共变量
    name
    这个
    是一个关键字,它引用了它在其中声明的函数(在接下来的课程中,您将了解更多关于这一切的信息,以及关于私有变量的信息)

    以下是一个例子:

    //Defines a constructor for making Person objects
    function Person(name, age){
      //creates a public variable "name" for all new People and assigns the name parameter to it 
      this.name = name;
      //creates a public variable "age" for all new People and assigns the age parameter to it 
      this.age = age;
      //creates a highFive() function that belongs to a Person
      this.highFive = function(){
        console.log("Thanks for the high-five bud!");
      };
    }
    
    这是一个构造函数。这是一个空白的人,有名字和年龄属性,还有一个方法可以让你高五他们。它还没有被实例化,所以程序中不存在唯一的人。如果你需要结交很多人,它只是一个节省时间的工具。
    如果我们想成为一个特定的人,我们可以这样做:
    var thatGuyJim=新人(“Jim”,25岁)
    这是一个实例化的Person对象。它具有公共变量
    name
    age
    ,分别设置为Jim和25。当您提到保存对象实例的变量
    thatGuyJim
    时,程序可以引用它。例如,如果我们想击打Jim,我们会这样做:
    thatGuyJim.highFive()

    当我们这样做时,我们正在使用
    highFive()
    方法,这是一个属于Person构造函数的函数,并将其应用于我们的新Person对象
    thatGuyJim
    。这将在控制台上打印“感谢high five bud!”

  • “新函数({stuff}
函数({stuff}
之间有什么区别?” 嗯,
var whather=new Function(){stuff}