如果函数是JavaScript中的对象,那么为什么';它们的属性是否具有名称-值对语法?
如果函数是javascript中的对象,那么为什么它们的属性不能有名称-值对语法呢?例如,为什么不可能/不允许以下情况如果函数是JavaScript中的对象,那么为什么';它们的属性是否具有名称-值对语法?,javascript,Javascript,如果函数是javascript中的对象,那么为什么它们的属性不能有名称-值对语法呢?例如,为什么不可能/不允许以下情况 function xx() { name: 'jhg' } alert(xx.name); 反之亦然: var person = { this.age = 32; }; alert(person.age); 因为函数声明不是对象初始值设定项。它们只是不同的语法,用于不同的目的,具有不同的用例和设计标准。数组也是对象,但我们也使用不同的初始值设定项表示法。正则
function xx() {
name: 'jhg'
}
alert(xx.name);
反之亦然:
var person = {
this.age = 32;
};
alert(person.age);
因为函数声明不是对象初始值设定项。它们只是不同的语法,用于不同的目的,具有不同的用例和设计标准。数组也是对象,但我们也使用不同的初始值设定项表示法。正则表达式也是如此 (请注意,您的第一个示例完全有效,将运行;
name
是一个标签,而不是属性名称,并且标签是一个不用于任何用途的ExpressionStatement。)
(还要注意,从ES2015开始,函数确实有一个内置的
名称
属性。这不是初始化它的方式。[在您的示例中,该函数的名称将是“xx”
。]),因为函数声明不是对象初始值设定项。它们只是不同的语法,用于不同的目的,具有不同的用例和设计标准。数组也是对象,但我们也使用不同的初始值设定项表示法。正则表达式也是如此
(请注意,您的第一个示例完全有效,将运行;name
是一个标签,而不是属性名称,并且标签是一个不用于任何用途的ExpressionStatement。)
(还要注意,从ES2015开始,函数确实有一个内置的
名称
属性。这不是初始化它的方式。[在您的示例中,该函数的名称将是“xx”
)它们是对象,但不是对象文本
函数可用于创建对象的实例。例如:
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log('Hi, my name is ' + this.name);
};
}
var bob = new Person('Bob', 24);
bob
变量是Person
函数的一个实例。
您可以通过以下方式从bob
访问属性:
console.log( bob.name ) // "Bob"
您也可以按字面定义它,如下所示:
var bob = {
name: 'Bob',
age: 24
};
函数
语法用于创建函数。它们是可以反复使用的模板。当您只需要一个实例或数据,而不需要附加任何行为时,可以使用对象文字语法。它们是对象,但不是对象文字
函数可用于创建对象的实例。例如:
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log('Hi, my name is ' + this.name);
};
}
var bob = new Person('Bob', 24);
bob
变量是Person
函数的一个实例。
您可以通过以下方式从bob
访问属性:
console.log( bob.name ) // "Bob"
您也可以按字面定义它,如下所示:
var bob = {
name: 'Bob',
age: 24
};
函数
语法用于创建函数。它们是可以反复使用的模板。当您只需要一个实例或数据,而不需要附加任何行为时,可以使用object literal语法。您可以指定属性,但不能指定,该属性是带有函数名称的只读属性
函数xx(){}
xx.name='jhg';//是只读的,因为它是函数名
xx.foo='bar';
console.log(xx.name);
console.log(xx.foo)代码>您可以根据需要分配属性,但不能,这是一个带有函数名称的只读属性
函数xx(){}
xx.name='jhg';//是只读的,因为它是函数名
xx.foo='bar';
console.log(xx.name);
console.log(xx.foo)代码>可能重复的@user8783104的可能重复:尝试运行什么,以及“它不工作”如何进行:-)@user8783104:尝试运行什么,但“它不工作”如何运行?:-)