您没有myperson
在代码中创建实例。
正如您所说,函数是对象。是的,函数是对象,它们也有属性。当您说myperson.name
您实际上是在访问函数的名称字段时。
因为它是一个函数并且它被命名为 function,所以函数的名称是你为函数声明的myperson,这由 Javascript 引擎处理。
此外,this
函数内部指向window
对象,因为您没有将函数作为构造函数调用或绑定到任何对象。因此,仅调用该函数不会设置myperson.name
属性,您需要使用new
类似运算符new myperson
并创建一个对象,该对象将具有您要访问的属性“名称”。
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();
有关此用法的更多信息。