JS的面向对象笔记

JS的面向对象

1.如果是可以new对象的方法,命名应该用Pascal。这样别人一看就知道,这是用来创建对象的方法。
2.JS中,方式这些用来创建对对象的方法,一般都叫做“构造函数”,在JS中,对象是通过“构造函数”创建出来的
function Person(){
	
}
3.通过“构造函数”创建对象p
var p = new Person();
4.对于一个方法,如果直接调用,那么就认为是一个普通的方法;如果通过new关键字调用,表示创建一个这个方法类型的对象。
5.js可以直接创建对象的属性。

p.name='李天霸';
p.age=2000;
p.email='litianba@vip.tiantang.com';
p.sayHi = function(){

	alert('我是:'+this.name+'今年:'+this.age+'岁了,邮箱是:'+this.email);
}

//-----------------------创建一个带有属性的构造函数Person2
function Person2(name,age,email){
	this.user_name=name;
	this.user_age=age;
	this.user_email=email;//这里不能省略this,这里的this表示将来new出来的对象
	this.sayHi=function(){
		alert('我是:'+this.user_name+'今年:'+this.user_age+'岁了,邮箱是:'+this.user_email);

	};
	//给当前构造函数中增加一个私有的成员
	var _gender;//方法中通过var 声明的变量,只有方法内部才能访问,外部访问不到
	//为_gender 这个"私有成员"成员,封装两个公有的方法
	this.get_gender=function(){
		return _gender
	};
	this.set_gender=function(gender){
		if(gender=='男'||gender=='女'){
			_gender=gender;
		}
		else{
			alert('赋值错误');
		}

	};
		}
}
	var mtt = new Person2('马天天',22,'mtt@yahoo.com');
	var ljt = new Person2('李家沱',21,'ljt@yahoo.com');

	mtt.sayHi();
	yjc.sayHi();

6.校验实例instanceof 相当于C#中的is

	function Car(){

	}
	var p3= new Person2('seww',22,'seww@yahoo.com');
	var c=new Car();

	alert(p3 instanceof Person2);//true
	alert(p3 instanceof Car);//false

7.通过对象字面量的方式创建对象
 var wll = {
        user_name: '王拉拉',
        user_age: 18,
        user_gender: '女神',
        sayHi: function () {
            alert('我叫' + this.user_name + '今年' + this.user_age);
        }
    };
    wll.sayHi();

8.原型prototype
    为什么要用原型
    因为通过“构造函数”创建的对象,如果对象中的方法是用this创建的,那么每次创建,都会在内存中创建一个方法的副本。这样非常耗费内存。
	8.1只有函数对象才有prototype
	8.2原型的值是只读的,不能修改(如果创建的对象给原型的字段赋值,实际上是创建了一个属性并赋值)
	8.3如果原型中的字段是引用类型(数组),那么数组的栈地址不可以改变。但是可以通过栈地址找到数组的数据,进行修改。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值