JS一般是采用自定义构造函数创建对象,那么关于构造函数创建的实例属性,方法和静态属性,方法。
实例属性和方法: 都是绑定在使用构造函数创建出来的对象p上; 最终使用的时候也是使用对象p来进行访问,也就是全部依赖于创建的对象传入参数等等决定;调用者始终是对象才有作用
<script>
function Person(name,age,fn1){
this.name=name;
this.age=age;
this.fn1=fn1;
}
function fn1(){
console.log("我就是实例方法");
}
var p=new Person("张三",20,fn1);
console.log(p.name);
console.log(p.age);
p.fn1();
</script>
静态属性和方法:绑定在函数身上的属性和方法,函数本质也是一个对象, 既然是个对象, 那么就可以动态的添加属性和方法,只要函数存在, 那么绑定在它身上的属性和方法, 也会一直存在。
<script>
function Person(){
}
Person.name="张三";
Person.age=20;
Person.run=function(){
Person.age++;
}
var p1=new Person();
console.log(Person.age);
Person.run();
var p2=new Person();
Person.run();
console.log(Person.age);
</script>
静态属性一般还可以应用到全局变量的使用
<script>
var sum=0;
function Person(){
sum++;
}
var p=new Person();
console.log(sum);
</script>