Javascript高级篇-面向对象的特性

一、创建对象

  1.1初始化器

var any={
name:"some",
age:10,
action:function(){
   alert(this.name+":"+this.age);
}
};

  1.2构造方法

function some(name,age){
this.name=name;
this.age=age;
this.action=function(){
  alert(this.name+":"+this.age);
}
}

var aa = new some("bb",5);
aa.action();

  1.3属性

function C(){
  this.objPro = "对象属性";
 C.prototype.objPro2="对象属性2";
  var privateObj = "私有属性";
}

C.classPro = "类属性";

  1.4对象方法

function C(){
var privateFun = function(){
alert("私有方法");
}
this.objFun = function(){
alert("对象方法");
}
this.prototype.objFun = function(){
alert("对象方法");
}
}

C.classFun = function(){
alert("类方法");
}

二、封装

var any={
name:"some",
age:10,
action:function(){
   alert(this.name+":"+this.age);
}
};

三、继承

  3.1Dog还是Dog

function Animal(name,age){

}

function Dog(name,age){
    Animal.apply(this,[name,age]);
}

  3.2Dog变成Animal了

function Animal(name,age){

}

function Dog(name,age){
    Animal.apply(this,[name,age]);
}

Dog.prototype=new Animal();

四、多态

function Animal(name,age){
     this.say=function(){

}
}

function Dog(name,age){
    this.say=function(){

}
}

Dog.prototype = new Animal();

function Cat(name,age){
     this.say=function(){

}
}

Cat.prototype = new Animal();

function say(){
if(animal instanceof Animal){
animal.say();
}
}
时间: 2024-09-29 15:32:48

Javascript高级篇-面向对象的特性的相关文章

JavaScript 高级篇之闭包、模拟类,继承(五)

本篇主要分享我对闭包的理解及使用闭包完成私有属性.模拟类.继承等,结合大量例子,希望大家能快速掌握!首先让我们先从一些基本的术语开始吧 一.javascript中的闭包 1.我们一起先来理解什么是函数的作用域. 2.调用的对象 结合例子: 复制代码 代码如下: function display(something) { function executeDisplay1() { document.write("我在帮老板打印:"+something+"<br />&

Javascript高级程序设计——面向对象小结

ECMAScript支持面向对象编程,对象可以在代码执行时创建,具有动态扩展性而非严格意义上的实体. 创建对象方法: 工厂模式:简单的函数创建引用类型 构造函数模式:可以创建自定义引用类型,可以想创建内置对象一样使用new操作符,构造函数的函数无法得到复用,不能共享函数. 原型模式:利用构造函数的prototype属性来指定共享的属性和方法,组合使用构造函数和原型模式时,使用构造函数定义实例属性,原型模式来共享方法. javascript主要通过原型链实现继承,将一个类型的实例赋值给另一个原型对

Javascript高级篇-JS闭包

Javascript闭包 1.变量的作用域 1.1局部变量 1.2全局变量(声明在外边或不用var来声明的变量) 2.外部读取方法内部的局部(私有)变量 function a(){ var b = "cc"; } alert(b);//报错:提示b未定义 解决方案 function a(){ var b = "cc"; function d(){ alert(b); } return d; } var result = a(); result(); 3.闭包

javascript高级篇——理解原型和作用域【连载中...】

说明: 该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分--原型和作用域,当然,肯定少不了原型链和作用域链.帮你揭开javascript最神秘的面纱. 为什么要偏偏要讲这两个知识点? 这是我在这么多年学习javascript的经历中,认为最难理解.最常犯错的地方,学习这两个知识点,会让你对javascript有更深层次的理解,至少理解了原型和作用域,就不能再算是javascript菜鸟了.另外,这

Javascript高级篇-Function对象

1.引入 1.1Function是基于原型的对象 2.创建Function对象 2.1 var myFun = new Function("参数一","参数二","alert(参数一+参数二);"); 3.Function对象的属性 3.1 length:得出方法参数的个数 4.Function对象的方法 4.1 toString():打印出方法的源码 4.2 valueOf():(作用同toString)

Javascript高级程序设计——面向对象之实现继承

原型链: 构造函数中都有一个prototype属性指针,这个指针指向原型对象,而创建的实例也有指向这个原型对象的指针__proto__.当实例查找方法时先在实例上找,找不到再通过__proto__到原型对象上查找.如果原型对象是另一个类型的实例,那么原型对象包含一个指向另一个原型对象的指针.另一个原型对象中也包含指向另一个构造函数的指针. 原型连继承function superValue(){ this.superValue = "superValue"; } superValue.p

Javascript高级程序设计——面向对象之创建对象

对象创建方法: 工厂方法 构造函数模式 原型模式 组合构造函数和原型模式 寄生构造函数模式 问题构造函数模式 工厂模式: function Person(name, age){ var obj = new Object(); //创建对象 obj.name = name; //添加方法.属性 obj.age = age; obj.sayName = function(){ alert(this.name); } return obj; //返回对象 }var people = Person("y

JavaScript高级程序设计: 面向对象编程

工厂模式 工厂模式虽然解决了创建多个相似对象的问题,但没有解决对象识别问题. function createPerson( name , age , job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ console.log( this.name ); } return o; } var person1 = createPerson('Alice',23,'PHP

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧