//自定义构造函数
function Person(name,age,job){
this.name = name;
this.age = age ;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
构造函数即是对象实例创建方式,同时也是函数。任何函数,只要通过new操作符来调用,那他就是构造函数;而任何函数,如果不同过new操作符来调用,那它跟普通函数也不会有任何两样;
一下三种调用方式;
//1 当作普通方式;
var person = new Person("Nic",33,"softer");
person.sayName(); // "Nic";
// 作为普通函数调用
Person(("Nic",33,"softer"); // 添加到window;
function Person(name,age,job){
this.name = name;
this.age = age ;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
构造函数即是对象实例创建方式,同时也是函数。任何函数,只要通过new操作符来调用,那他就是构造函数;而任何函数,如果不同过new操作符来调用,那它跟普通函数也不会有任何两样;
一下三种调用方式;
//1 当作普通方式;
var person = new Person("Nic",33,"softer");
person.sayName(); // "Nic";
// 作为普通函数调用
Person(("Nic",33,"softer"); // 添加到window;
window.sayName(); // Nic
// 解析:当Person当作普通方法使用时,是把此方法加入宿主环境window中,方法中的this当没有用new创建出来实例对象时,this就是指向window;
// 另一种方法,使用call方法调用作用域
var o = new Object();
Person.call(o,"nic",25,"nur"); // 第一个参数,实例对象函数。第二个以后是函数参数;
o.sayName(); // nur