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");}
};
Asobj.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