JS笔记:原型
来源:互联网 发布:java mysql 编辑:程序博客网 时间:2024/06/08 11:17
原型VS类:
类:抽象——具体
原型:具体——具体
对象——原型对象
设置对象的原型:
Object.create(proto[,propertisObject])
proto 一个对象,作为新创建对象的原型
propertiesObject 对象属性的定义
var landRover={ name:'landRover', start:function(){console.log('s% start',this.logo); }, run:function(){console.log('s% running',this.logo); }, stop:function(){ console.log('s% stop',this.logo ); }}//使用原型(landRover)创建新的对象var landWind=Object.create(landRover);landWind.logo="landWdind";var landCruiser =Object.create(landRover);landCruiser.logo="landCruiser";//启动landWind.start();
proto :指向对象的原型。隐式属性,不能直接被修改,用来说明每个对象背后都有一个原型对象。
构造函数设置对象原型
自定义对象有一个原型属性:prototype对象
使用new,new创建的对象有一个proto 属性 指向构造函数的原型属性prototype
//创建一个构造函数carfunction car(logo){ this.logo=logo||'unknown name';}//给car的原型属性创建一个对象car.prototype={ start:function(){console.log('s% start',this.logo); }, run:function(){console.log('s% running',this.logo); }, stop:function(){ console.log('s% stop',this.logo ); }}//创建一个新对象landRover/*分解步骤:1) 创建对象landRover2)设置landRover的_proto_3)car.apply(landRover,arguments) (landRover作为this去执行car)*/var landRover=new Car('landRover');landRover.start();
可以创建多个对象,共享一个原型对象
//创建一个构造函数carfunction car(logo){ this.logo=logo||'unknown name';}//给car的原型属性创建一个对象car.prototype={ start:function(){console.log('s% start',this.logo); }, run:function(){console.log('s% running',this.logo); }, stop:function(){ console.log('s% stop',this.logo ); }}//创建构造函数landRoverfunction landRover(seriolno){ this.seriolno=seriolno;}//设置landRover的prototype属性landRover.prototype= new car('landRover')//创建landRover对象var landRover1= new landRover(100000);var landRover2= new landRover(100001)console.log(landRover1.seriolno);console.log(landRover1.toString());
对象的属性和方法优先在自身查找,没有找到,沿着原型链查找,知道找到。
只能修改自身的属性和方法,不会影响到原型链上的属性和方法。
hasOwnProperty 方法:判断属性是否是自身的属性,如果是,返回true。是Object的属性,所有对象都可以使用。
函数也是对象
LandRover 和car 可以通过new Function创建的
0 0
- JS原型操作笔记
- JS原型学习笔记
- JS笔记:原型
- JS原型学习笔记
- 笔记-JS 原型与原型链知解
- JS学习笔记02-初识原型
- 【JS学习笔记】 面向对象与原型
- js高级程序设计笔记--原型模式
- JS原型、原型链
- JS-原型、原型链
- JS原型,原型链
- js原型,原型链
- JS原型+原型链
- js原型
- js原型
- js原型
- js原型
- js原型
- Zookeeper安装和简单使用
- 双向链表解读
- D
- UVA - 11468 Substring ( AC自动机 + dp)
- Swift-if语句
- JS笔记:原型
- 算法学习之尺取法
- JSP 的OUT对象输出
- 最大Xor路径 7.30 T2
- Introduction to JSON Web Tokens
- 网络工程1.9——七层模型之三网络层
- java 大数加法
- android之<include>和<ViewStub>标签的区别
- python 矩阵运算