要求构造函数首字母大写,便于区分构造函数和普通函数
编程过程中,有一批数据有相同的属性和行为,为了不产生代码冗余,让编程更有效率。将这些属性和行为封装起来,称之为类(实际上还是函数)。
然后通过特殊方法调用函数,拿到返回值和具体的对象。
类为什么要继承
A类和B类有相同的行为属性,单独封装代码冗余,产生了继承,讲共同的单独封装在一个C类中,通过代码让AB和C建立联系,是从AB中实例化的对象都能使用C的行为。就称AB类继承了C类。
例如 数组和字符串都有length indexOf等方法。
不是为继承而生,但过于强大而被用于继承。。
var a = ‘aaaaa‘; var tom = { name:‘tom‘, run: function(){ console.log(this.name + ‘ is running‘); // tom可以访问a // run能直接访问的只有tom里面的 } }; // run(); 掉的是window下的run(),并不存在 tom.run(); var jery = { name: ‘jery‘, run: function(){ console.log(this.name +‘ is running‘); } } jery.run(); jery.run.call(tom);
jert.run.apply(tom);
jery.run.call(tom); 调用的是jery的run,但是用了call(tom),使jery里的this指向变成tom
call apply是js为函数提供的函数;(就像push是为array提供的一样)
当一个函数调用了call和apply后,函数中的函数体代码会执行。
函数中this的指向会变成call 和apply的第一个参数
原文:https://www.cnblogs.com/sandraryan/p/11540751.html