函数对象如何适应 JavaScript 中对象的定义?
How do function-objects fit in the definition of objects in JavaScript?
我听说对象是属性和方法的集合。那么如果一个函数是一个对象,那么函数对象如何符合JavaScript中对象的定义呢? 我正在尝试制作一个具有属性和函数的函数示例,但我没有成功。
function myperson(){
this.name= "Bruno";
personAbility = function(){document.write(1+1);};
}
document.write(myperson.name);
我做错了什么?你能帮我么。非常感谢!
你做得对,你只需要实例化你的 myperson 对象。您可以通过编写 var myPerson = new myperson()
来完成此操作。然后,console.log(myPerson)
应该显示:
myperson {name: "Bruno"}
要配合您的 document.write
示例,您可以 document.write(myPerson.name)
.
一旦您将函数视为构造函数,this
关键字将可用,这意味着您必须使用 new
关键字创建一个新实例:
function myperson(){
this.name= "Bruno";
personAbility = function(){document.write(1+1);};
}
var person = new myperson();
document.write(person.name);
您没有在代码中创建 myperson
的实例。
正如你所说,函数是对象。是的,函数是对象,它们也有属性。当您说 myperson.name
时,您实际上是在访问函数的名称字段。
因为它是一个函数并且是 named function,函数的名称是 myperson 您为该函数声明的,它由 Javascript引擎。
此外,函数内部的 this
指向 window
对象,因为您没有将函数作为构造函数调用或绑定到任何对象。所以只调用该函数不会设置 myperson.name
属性,您需要使用 new
运算符,如 new myperson
并创建一个对象,该对象将具有 属性 "name" 您要访问的内容。
function myperson() {
this.name= "Bruno";
this.personAbility = function(){document.write(1+1);};
}
var per = new myperson();
document.write(per.otherName);
//call the personAbility method like below
per.personAbility();
更多关于 this 用法的信息。
我听说对象是属性和方法的集合。那么如果一个函数是一个对象,那么函数对象如何符合JavaScript中对象的定义呢? 我正在尝试制作一个具有属性和函数的函数示例,但我没有成功。
function myperson(){
this.name= "Bruno";
personAbility = function(){document.write(1+1);};
}
document.write(myperson.name);
我做错了什么?你能帮我么。非常感谢!
你做得对,你只需要实例化你的 myperson 对象。您可以通过编写 var myPerson = new myperson()
来完成此操作。然后,console.log(myPerson)
应该显示:
myperson {name: "Bruno"}
要配合您的 document.write
示例,您可以 document.write(myPerson.name)
.
一旦您将函数视为构造函数,this
关键字将可用,这意味着您必须使用 new
关键字创建一个新实例:
function myperson(){
this.name= "Bruno";
personAbility = function(){document.write(1+1);};
}
var person = new myperson();
document.write(person.name);
您没有在代码中创建 myperson
的实例。
正如你所说,函数是对象。是的,函数是对象,它们也有属性。当您说 myperson.name
时,您实际上是在访问函数的名称字段。
因为它是一个函数并且是 named function,函数的名称是 myperson 您为该函数声明的,它由 Javascript引擎。
此外,函数内部的 this
指向 window
对象,因为您没有将函数作为构造函数调用或绑定到任何对象。所以只调用该函数不会设置 myperson.name
属性,您需要使用 new
运算符,如 new myperson
并创建一个对象,该对象将具有 属性 "name" 您要访问的内容。
function myperson() {
this.name= "Bruno";
this.personAbility = function(){document.write(1+1);};
}
var per = new myperson();
document.write(per.otherName);
//call the personAbility method like below
per.personAbility();
更多关于 this 用法的信息。