Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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_Object - Fatal编程技术网

Javascript 为什么;功能“;在对象名称之前是否需要关键字?所有对象都是实数函数?

Javascript 为什么;功能“;在对象名称之前是否需要关键字?所有对象都是实数函数?,javascript,object,Javascript,Object,当我们制作这样的物体时 function myObject(){ Properties and methods here---- }; 我们在对象名称前写“function”关键字,有必要吗?所有对象都是实函数?我们不能这样写直接对象名吗 myObject(){ Properties and methods here---- }; 在第一种情况下,函数可以用作对象的构造函数。因此,您可以: function Person(name) { this.name = name

当我们制作这样的物体时

function myObject(){  
Properties and methods here----
}; 
我们在对象名称前写“function”关键字,有必要吗?所有对象都是实函数?我们不能这样写直接对象名吗

myObject(){  
Properties and methods here----
}; 

在第一种情况下,函数可以用作对象的构造函数。因此,您可以:

function Person(name) {
    this.name = name
}

Person.prototype = {
    // methods can go in here
}

person1 = new Person("bob");
alert(person1.name) // alerts "bob"
同样,可以将函数用作对象。例如:

function myObject() {
    return myObject.test;
}

myObject.test = "bob";
alert(myObject()) // would alert "bob"
但并非所有对象都是函数

var someObject = {
     name: "bob",
     moody: "sad"
}

alert(someObject.name); // alerts "bob"
try {
    someObject();
} catch (er) {
    alert(er);  // alerts "TypeError: object is not a function"
}

我建议你看看

不,这不是必需的。您还可以拥有:

var myObject = {  
   Prop1: "Value1", 
   Prop2: "Value2", 
   Method1: function() {
      alert("hello");
   }
};

实时测试用例:

函数
声明一个函数。由于JavaScript的工作方式,函数可以用作类来生成对象

但如果你真的只想要一个对象,请使用弯曲的大括号,如下所示:

var myObject = {
  x : 30, // a property
  getX : function() { // a method
     return this.x;
  }
}

但是你对JavaScript的理解需要做很多工作:阅读一些关于它的书。

不,不是所有的对象都是函数。(不过,所有函数都是对象。)

在这里,
obj
不是一个函数:

var obj = {
    foo: "bar"
};
Nor
dt
此处:

var dt = new Date();
function
关键字是说“下面是函数声明或函数表达式”所必需的。它只是JavaScript基本语法的一部分。

您可以编写:

myObject = {
Properties and methods here----
}

一个原因是明显的歧义

function foo() 
{
    alert("cake") 
}

foo()
{
    alert("burb");
}

foo();

警报
cake
burb
cake
,因为第二个
foo(){…}
只是一个常规函数调用,后面是一个包含在
{}

中的常规复合语句。在Javascript中,我们可以以各种方式创建对象:

1) 文字

2) 构造函数(具有此属性的函数)

let specificEmployee=新员工(“tyrion”,34)

构造函数总是需要有一个新的操作符来创建对象

3) 使用对象构造函数

   let employee = Object.create(null);
   employee.name = "tyrion";
   employee.age = 34

在javascript中,除了基元类型之外的所有东西都是从对象构造函数继承的实例

与其说是类,不如说是构造函数。JavaScript没有类。嗨,Malvolio,thx为答案:)是的,我需要大量的工作来理解JavaScript。我每天读几本书和几篇文章。嗨,delnan,所以我们在对象名之前写上关键字“function”,这样我们就可以创建一个构造函数……哦,这就是为什么我们使用关键字“new”来创建“objectname”的实例……现在我得到了它……谢谢你的支持
   function employee(name, age) {
     this.name = name;
     this.age = age;
   }
   let employee = Object.create(null);
   employee.name = "tyrion";
   employee.age = 34