标签:创建对象 ted 函数 需要 href 资源 lan undefined new
一、面向对象概念
var date=new Date();date.getTime();date.getHours();var arr=new Array(1,2,3);arr.sort();arr.push(123);arr.length;
var person={name:‘老王‘,age:30,sing:function(){console.log(‘五环之歌‘);}};person.height=‘180CM‘;person.play=function(){console.log(‘打飞机‘);};console.log(person);

//第二种创建对象的方法var person2=new Object();person2.name=‘小王‘;person2.age=18;person2.play=function(){console.log(‘打小飞机‘);};console.log(person2)

//工厂方式function createPerson(name,age){var obj=new Object; //创建对象。obj.name=name;obj.age=age;obj.say=function(){console.log(‘我叫‘+obj.name);}return obj; //将对象返回出去}var p1=createPerson(‘老王‘,30);var p2=createPerson(‘小王‘,18);p1.say();p2.say();//面向对象方式function CreatePerson(name,age){//var obj=new Object(); //创建对象。 //因为使用new调用的,会自动创建一个空对象,所以这里不需要自己创建空对象了。this.name=name; //并且会自动把内部的this指向自动创建的对象this.age=age;this.say=function(){console.log(‘我叫‘+this.name+‘今年‘+this.age);}//return obj; //将对象返回出去 //以上写的内容会被放进自动创建的空对象内,并且被return出去}var p1=new CreatePerson(‘老王‘,30);var p2=new CreatePerson(‘小王‘,18);p1.say();p2.say();
function fn(a){if(a){console.log(1,a);}else{console.log(1);}}fn(); //以前调用函数的方法new fn; //用new调用函数,不带参数new fn(2); //用new调用函数,带参数
function fn2(){console.log(this);}fn2(); //Windownew fn2; //{} this指向是创建的那个对象var re1=fn2();var re2=new fn2;console.log(‘re1‘,re1); //undefinedconsole.log(‘re2‘,re2); //{} 返回了创建的对象function fn3(){//return [1,2,3]; return的是对象,return 1; //return的是非对象}var re3=fn3();var re4=new fn3;console.log(‘re3‘,re3); //[1, 2, 3] //1console.log(‘re4‘,re4); //[1, 2, 3] //{}
function Person(name,age){/** 1、创建一个空对象* var obj=new Object;* 2、把this指向创建的对象* this=obj*/this.name=name;this.age=age;this.say=function(){console.log(‘我叫‘+this.name);};/** 3、函数执行完毕后,返回创建的对象* return obj;*/}var p1=new Person(‘老王‘,30); //一个实例var p2=new Person(‘小王‘,18); //一个实例console.log(p1.say==p2.say); //false 公用的方法变成了每一个对象特有的,这样就会造成资源浪费,解决方法---原型var arr1=new Array(1,2,3);var arr2=new Array(4,5,6);console.log(arr1.push===arr2.push); //true
function Person(name,age){this.name=name;this.age=age;}Person.prototype.sex=‘男‘;Person.prototype.say=function(){console.log(‘我叫‘+this.name);};var p1=new Person(‘老王‘,30); //一个实例var p2=new Person(‘小王‘,18); //一个实例p1.say();p2.say();console.log(p1.say===p2.say); //true
function Person(name,age){this.name=name;this.age=age;}Person.prototype.sex=‘男‘;Person.prototype.say=function(){console.log(‘我叫‘+this.name);};var p1=new Person(‘老王‘,30); //一个实例var p2=new Person(‘小王‘,18); //一个实例console.log(p1.__proto__===Person.prototype) //trueconsole.log(p1.prototype) //undefinedconsole.log(p1.__proto__);

function Person(){this.name=‘kaivon‘;this.age=20;}Person.prototype.age=18;Object.prototype.age=22;var p1=new Person();console.log(p1.age); //20 18 22
标签:创建对象 ted 函数 需要 href 资源 lan undefined new
原文地址:http://www.cnblogs.com/CafeMing/p/6616629.html