两者区别:面向过程是函数化的(过程化的)-----而面向对象,有一个语言标志类(构造函数)的概念,通过类可以创建任意多个相同属性和方法的实例对象。 面向对象的特点:封装,继承,多态
对象的组成-----属性-变量是自由的,状态是静态的; 对象下方法----函数自由的---过程动态的
构造函数基本特点----首字母大些---------new运算符实例化对象
new操作符调用构造函数时,函数内部发生的变化
1.首先创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型
2.属性和方法加入到this引用的对象中
3.新创建的对象由this所引用,最后隐式的返回给this.
构造函数的缺点:实例化的方法每次都要重新创建
构造函数和普通函数的区别:
构造函数将属性和方法赋给this.构造函数this绑定到新创建的new对象实例上。普通函数的this指向当前调用者。没有return语句。构造函数首字母得大写,构造函数需要New操作符调用,
function foo() {
var f2 = new foo2();
console.log(f2); //{a: 3}
console.log(this); //window
return true;
}
function foo2() {
console.log(this); //foo2类型的对象 不是foo2函数
// this.age = 30;
return {a: 3};
}
var f1 = foo();
console.log(f1); // true
在面向对象中如何避免使用全局变量和函数
1.命名空间、利用对象的命名区分
2.闭包--自执行函数
3.面向对象
4.