js 对象******个人小记

一切皆对象 :
	js中的对象如:
	
	对象	     属性		         方法
	人         身高、体重      会唱歌、会跳舞、写代码

一切皆对象说法又不是完全都对,举例如下:
 js中的数据类型
 undefined、string、boolean、null、number   基本类型也叫原始值  
 function、Object、Array 引用类型 才是对象
 面向对象可以理解成一组键值对

创建对象的三种方式 

第一种:通过new关键字创建
var obj1 = new Object( );


第二种:字面量创建对象  
   
   1) 简单字面量
    var obj = { }
	obj.name = "aaa";
	obj.aeg = 23;
	obj.todo = function ( ) { 
		return this.name 
	}
	
	2)嵌套字面量   (也是推荐写法)
	var obj1 = {
	    name:" 小小",
	    age:23,
	    todo:function(){
	       console.log(this.name);
	    },
  	   address:'北京市海演区'
	}
	
备注:嵌套字面量 延伸问题小记
函数声明:在声明前可以使用  解析器会优先解析 存在变量提升,举例如下:
add(2,3)  //成立
function add(a,b){ return a+b }
add(2,3)  //成立

// 函数表达式  必须先声明才能使用   解析器解析完才能使用,举例如下:
add1(3,5)   //不成立,报错
var add1 = function(3,5){ return a+b }
add1(3,5)   //成立*/


第三种  构造函数
function Person (name, age) {
    this.name = name;
    this.age = age;
    this.todo = function () { return this.name;}
}
var person = new Person("张三",20);   //实例对象
调用实例的name   
console.log(person.name);
console.log(person.age);
console.log(person.todo());

实例是否属性构造函数
console.log(Person.prototype.isPrototypeOf(person))

实例 __proto__    修改构造函数的属性  console.log(person.__proto__.name = "小小")
原型:constructor    构造器  公共存放区
构造函数:prototype


延伸小记
普通函数
function person(name){return name}
person("张三")


 工厂模式 
function person(name,age){
     var obj = new Object();
     obj.name = name;
     obj.age = age;
     return obj;
}
var a1 = person("张三", 28);

普通函数与构造函数的区别
一:this指向不一样
构造函数中的this指向创建对象的实例对象
普通函数的this指向调用者
二:调用方式不同
构造函数 new  普通函数不需要
 三 :命名方式:
构造函数首字母大写  普通函数不需要首字母大写 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值