javascript中的构造函数问题
如果我写两个构造函数,如下所示:javascript中的构造函数问题,javascript,Javascript,如果我写两个构造函数,如下所示: Person(name, age) { this.name = name; this.age = age; sayName = function() { alert("hello"); }; } 及 有什么区别?做 赛名 第一段代码中真的有什么意思吗?它有用吗?sayName在第一个代码中是一个私有全局函数,而在第二个代码中是一个特权公共函数 更新#1: 下面的代码大致概括了它们的含义 fun
Person(name, age) {
this.name = name;
this.age = age;
sayName = function() {
alert("hello");
};
}
及
有什么区别?做
赛名
第一段代码中真的有什么意思吗?它有用吗?
sayName
在第一个代码中是一个私有全局函数,而在第二个代码中是一个特权公共函数
更新#1: 下面的代码大致概括了它们的含义
function Person(name, age) {
this.name = name;
this.age = age;
sayName = function() { //define in global name-space
alert("hello");
}
var sayNamePvt = function() { //private function
alert("hello pvt");
}
this.callPvt = function(){ //shows how privilege function can access private vars and functions
sayNamePvt();
}
}
function Person1(name, age) {
this.name = name;
this.age = age;
this.sayName = function() { //privilege public function
alert("hello1");
}
}
var one = new Person('abc', 12);
var two = new Person1('abcd', 11);
two.sayName();//privileged public access
sayName(); //global access
//one.sayName(); //ERROR: one.sayName is not a function
//one.sayNamePvt(); //ERROR: one.sayNamePvt is not a function
one.callPvt(); //privileged method can call private functions
实际上,因为没有
var
关键字,所以它是一个全局变量function@qwertymk呜呜声。错过了要点。@jsnewman更新了答案,为之前的错误答案道歉。当你询问有关书籍的问题时,请包括有关该作品的信息。它可以帮助人们帮助您,以及正确地对代码进行归因。在本例中,示例来自Nicholas C.Zakas的《面向Web开发人员的专业JavaScript》,第二版(Wrox,2009),第152页。
function Person(name, age) {
this.name = name;
this.age = age;
sayName = function() { //define in global name-space
alert("hello");
}
var sayNamePvt = function() { //private function
alert("hello pvt");
}
this.callPvt = function(){ //shows how privilege function can access private vars and functions
sayNamePvt();
}
}
function Person1(name, age) {
this.name = name;
this.age = age;
this.sayName = function() { //privilege public function
alert("hello1");
}
}
var one = new Person('abc', 12);
var two = new Person1('abcd', 11);
two.sayName();//privileged public access
sayName(); //global access
//one.sayName(); //ERROR: one.sayName is not a function
//one.sayNamePvt(); //ERROR: one.sayNamePvt is not a function
one.callPvt(); //privileged method can call private functions