标签:创建对象 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(); //Window
new fn2; //{} this指向是创建的那个对象
var re1=fn2();
var re2=new fn2;
console.log(‘re1‘,re1); //undefined
console.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] //1
console.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) //true
console.log(p1.prototype) //undefined
console.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