面向对象笔记
来源:互联网 发布:网络招生实战 丁丛 编辑:程序博客网 时间:2024/06/06 10:47
创建对象:
2.构造函数模式
function Person(name,age,job){
this.name=name;
this.age=age;
this.sayName=function(){
alert(this.name);
}
}
var person1=new Person(‘lllrrr’,28);
var person2=new Person(‘yyyccc’,24);
与工厂函数不同之处
1:没有显示式创建对象;2:直接将属性方法给了this;3:没有return语句;
另:构造函数是首字母大写,因为构造函数本身也是函数,方便区分、
创建新的实例时new经历了
(1)创建一个新对象;(2)构造函数的作用域给新对象(this的指向新对象);
(3)执行构造函数的代码(为新对象添加属性);(4)返回新对象;
构造函数的问题
每一个新对象都拥有所有的属性!
而且每个实例中的function的定义方式类似于这样
this.sayName=new Function(){ ‘alert(this.name)};
会产生下面的情况;
alert(person1.sayName==person2.sayName); //false;
也就是说,不同实例上的同名函数是不相等的,每个实例都会重新创建。如果将function定义在全局会解决这个问题,但是会导致全局函数过多!!
3)原型模式 prototype
prototype是一个指针,指向一个对象,这个对象的用途包含可以由特定类型的所有实力共享的属性和方法。
自身属性中有和原型中同名的属性,会屏蔽原型中的属性。
- 面向对象学习笔记
- 面向对象笔记
- PHP面向对象笔记
- 面向对象笔记
- 面向对象笔记1
- 面向对象程序设计笔记
- java面向对象笔记
- perl 面向对象 笔记
- php 面向对象 笔记
- 面向对象笔记
- python 面向对象笔记
- 面向对象笔记(OOP)
- 面向对象笔记
- 面向对象 笔记
- javascript面向对象笔记
- 面向对象的笔记
- JAVA面向对象笔记
- 学习笔记--面向对象
- 根据某一条件的改变,日期选择改变
- 661. Image Smoother
- unity在webgl端 输入框无法输入中文和中文显示问题的解决
- SEO新手不知道每天做什么,看了你就知道
- mycat分布式mysql中间件(入门)
- 面向对象笔记
- C#基础系列——反射笔记
- leetcode_4Sum、4Sum II
- Vivado 时序问题简析
- SVG基础六:椭圆
- VC调试信息的输出
- OpenGL——理解SSAO
- 医疗行业安全建设方案
- node.js ejs的视图模块引擎