1、javascript创建对象
function myfun(){
}
var myobj1 = new myfun();
var myobj2 = new myfun();
等价于
var myobj = {};
myfun.call(myobj);
我们可以这样理解,javascript先用new新建了个对象,然后又将该对象作为this指针作为参数调用了该函数。其实javascript内部就是这样做的。
2、javascript构造函数
<script type="text/javascript">
function sayHello(){
alert("I am "+this.name);
}
function Person(name){
this.name = name;
this.sayHello = sayHello;
}
var bill = new Person("bill");
var steven = new Person("steven");
bill.sayHello();
steven.sayHello();
alert(bill.sayHello==steven.sayHello);
</script>
3、javascript原型
<script type="text/javascript">
function Person(name){
this.name = name;
}
Person.prototype.sayHello = function(){
alert("I am "+this.name);
}
function Employee(name,salary)//子类构造函数
{
Person.call(this,name);//调用基类构造函数
this.salary = salary;
}
Employee.prototype = new Person();//建立一个基类对象作为子类原型的原型
Employee.prototype.showmeMoney = function(){
alert(this.name + "$" + this.salary);
}
var bill = new Person("bill");
var steven = new Employee("steven",1234);
bill.sayHello();
steven.sayHello();
steven.showmeMoney();
alert(bill.sayHello==steven.sayHello);
</script>
Employee.prototype = new Person();//建立一个基类对象作为子类原型的原型
这里构造一个基类对象,将其作为子类构造函数的prototype,目的为了在后面子类对象能直接调用基类的方法