js对象及new对象/函数的比较区别
function Chenqiguo(){ alert('qiguo'); } Chenqiguo.prototype.getName = function(){ alert('prototype qiguo'); }
我们分别用new实例化构造函数和用普通的函数执行对原型求值
var chenqiguo = new Chenqiguo();//打印qiguo chenqiguo.getName(); //打印prototype name var name = Chenqiguo(); //打印qiguo name.getName(); //会报错, name is undefined
可以看到当我们用new 操作符创建的对象的时候能够打印原型上的值,而用常规函数的时候却不能,这样就解释了在我们当把函数当作构造函数创建新的对象的时候,其内部的prototype属性成为了被创建对象的一个引用.
抛开语言层次来观察函数和构造器的话,构造器的名称通常都使用首字母大写的形式来表表明其是一个构造函数,用小写字母的话就表示其是一个普通的函数.作为javascript的开发人员来说,应该严格区分这两种情况,如果是构造器就首字母大写,否则首字母就小写
var person=new Person();//person是一个对象
var person = Person();//这只是一次普通的函数调用并赋值而已。