Javascript 在对象中执行函数

Javascript 在对象中执行函数,javascript,Javascript,我们可以在对象本身中执行函数吗?见下面的代码: obj = { name:function(){alert("maizere");} }; Asobj.name()。为什么不在对象本身内部执行,比如: obj = { name:function(){ alert("maizere"); }, name(); }; 因为obj=new obj()=={obj()}对吗 我尝试这一点时没有成功。这里有什么不对劲吗?还是我错了?以下符号:

我们可以在对象本身中执行函数吗?见下面的代码:

obj = {
     name:function(){alert("maizere");}
};
As
obj.name()。为什么不在对象本身内部执行,比如:

obj = {
     name:function(){
         alert("maizere");
     },
     name();
};
因为
obj=new obj()=={obj()}对吗


我尝试这一点时没有成功。这里有什么不对劲吗?还是我错了?

以下符号:

var obj = {};
被称为“对象文字”。它需要一个键/值对列表,作为对象的属性


仅此而已。

以下符号:

var obj = {};
被称为“对象文字”。它需要一个键/值对列表,作为对象的属性


仅此而已。

您尝试的语法没有意义

如果希望立即执行函数,可以执行以下操作。这是通过将函数转换为表达式而不是声明来实现的:

obj={
  name: (function(){
    alert("maizere");
  })()
};
但是,这与:

obj={
  name: function(){
    alert("maizere");
  }
};

obj.name();

因为
这个
在每个不同的函数调用中都是不同的。对于前者,此wll指向全局对象(在浏览器中通常为
窗口
),而在后者中,此将指向
obj
您尝试的语法没有意义

如果希望立即执行函数,可以执行以下操作。这是通过将函数转换为表达式而不是声明来实现的:

obj={
  name: (function(){
    alert("maizere");
  })()
};
但是,这与:

obj={
  name: function(){
    alert("maizere");
  }
};

obj.name();

因为
这个
在每个不同的函数调用中都是不同的。对于前者,此wll指向全局对象(在浏览器中通常是
窗口
),而在后者中,此将指向
obj
对象文本不是类,因此与
窗口
对象类似,不存在对根对象的作用域。此外,对象文字的语法结构并没有这样做的意图。它是一个异构的键值对列表。像这样:

var o = { a : b };
JavaScript没有类。但是,
with
语句(很少使用)允许这种行为(在不指定对象根的情况下访问对象的属性或方法)


但是这个构造不应该在代码中使用,因为它会导致问题。但作为对您问题的回答,它确实起到了作用。

对象文字不是类,因此没有根对象的作用域,类似于
窗口
对象。此外,对象文字的语法结构并没有这样做的意图。它是一个异构的键值对列表。像这样:

var o = { a : b };
JavaScript没有类。但是,
with
语句(很少使用)允许这种行为(在不指定对象根的情况下访问对象的属性或方法)


但是这个构造不应该在代码中使用,因为它会导致问题。但作为对你问题的回答,它确实起到了作用。

是的,肯定是出了问题

JavaScript对象由名称:值对组成,因此不允许您破坏该模式并执行其他操作。
请看一下

是的,肯定是出了问题

JavaScript对象由名称:值对组成,因此不允许您破坏该模式并执行其他操作。
如果您想要一个基于类的语言意义上的构造函数,请查看

,这可能是一个更好的方法:

// "class" definition and constructor
var MyObject = function() {
  this.name();
};
// method
MyObject.prototype.name = function() {
  alert("maizere");
};

// create an object instance of your "class"
var obj = new MyObject();

请注意,Javascript没有类。然而,这个术语有时有助于理解Javascript构造函数的方法。

如果您想要一个基于类的语言意义上的构造函数,这可能是一个更好的方法:

// "class" definition and constructor
var MyObject = function() {
  this.name();
};
// method
MyObject.prototype.name = function() {
  alert("maizere");
};

// create an object instance of your "class"
var obj = new MyObject();

请注意,Javascript没有类。然而,这个术语有时有助于理解Javascript构造函数的方法。

Javascript有几个内置对象,如字符串、日期、数组等

对象只是一种特殊类型的数据,具有属性和方法

访问对象属性的语法为:

objectName.propertyName
例如:

var message="Hello World!";
var x=message.length;
执行上述代码后,x的值为: 十二,

注意消息是如何成为对象的

下面是另一个示例,您可以使用new实例化对象,并向其添加属性

person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
下面是一个课堂示例:

function HelloWorld(hour)
{
  // class "constructor" initializes this.hour field
  if (hour)
  {
    // if the hour parameter has a value, store it as a class field
    this.hour = hour;
  }
  else
  {
    // if the hour parameter doesn't exist, save the current hour
    var date = new Date();
    this.hour = date.getHours();
  }

  // display greeting
  this.DisplayGreeting = function()
  {
    if (this.hour >= 22 || this.hour <= 5) 
      document.write("Goodnight, world!");
    else
      document.write("Hello, world!");
  }  
}
函数HelloWorld(小时)
{
//类“构造函数”初始化此.hour字段
若有(小时)
{
//如果hour参数有值,则将其存储为类字段
这个小时=小时;
}
其他的
{
//如果小时参数不存在,请保存当前小时
变量日期=新日期();
this.hour=date.getHours();
}
//显示问候语
this.DisplayGreeting=函数()
{

if(this.hour>=22 | | this.hourJavaScript有几个内置对象,如字符串、日期、数组等

对象只是一种特殊类型的数据,具有属性和方法

访问对象属性的语法为:

objectName.propertyName
例如:

var message="Hello World!";
var x=message.length;
执行上述代码后,x的值为: 十二,

注意消息是如何成为对象的

下面是另一个示例,您可以使用new实例化对象,并向其添加属性

person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
下面是一个课堂示例:

function HelloWorld(hour)
{
  // class "constructor" initializes this.hour field
  if (hour)
  {
    // if the hour parameter has a value, store it as a class field
    this.hour = hour;
  }
  else
  {
    // if the hour parameter doesn't exist, save the current hour
    var date = new Date();
    this.hour = date.getHours();
  }

  // display greeting
  this.DisplayGreeting = function()
  {
    if (this.hour >= 22 || this.hour <= 5) 
      document.write("Goodnight, world!");
    else
      document.write("Hello, world!");
  }  
}
函数HelloWorld(小时)
{
//类“构造函数”初始化此.hour字段
若有(小时)
{
//如果hour参数有值,则将其存储为类字段
这个小时=小时;
}
其他的
{
//如果小时参数不存在,请保存当前小时
变量日期=新日期();
this.hour=date.getHours();
}
//显示问候语
this.DisplayGreeting=函数()
{

如果(this.hour>=22 | | | this.hour erm,你为什么要这样做?它有什么目的?因为一个对象只需要
key:value
pair。你不能把一个语句放在那里。没有目标。但我只是想知道,因为当我们使用诸如var obj=new obj()之类的构造函数创建对象时,它等于obj={obj()}。所以这就是m