使用不同的方法来创建对象和生成原型链
来源:互联网 发布:办公软件激活 编辑:程序博客网 时间:2024/05/16 16:00
使用不同的方法来创建对象和生成原型链
使用普通语法创建对象
var o = {a: 1};// o这个对象继承了Object.prototype上面的所有属性// 所以可以这样使用 o.hasOwnProperty('a').// hasOwnProperty 是Object.prototype的自身属性。// Object.prototype的原型为null。// 原型链如下:// o ---> Object.prototype ---> nullvar a = ["yo", "whadup", "?"];// 数组都继承于Array.prototype // (indexOf, forEach等方法都是从它继承而来).// 原型链如下:// a ---> Array.prototype ---> Object.prototype ---> nullfunction f(){ return 2;}// 函数都继承于Function.prototype// (call, bind等方法都是从它继承而来):// f ---> Function.prototype ---> Object.prototype ---> null
使用构造器创建对象
在 JavaScript 中,构造器其实就是一个普通的函数。当使用 new 操作符 来作用这个函数时,它就可以被称为构造方法(构造函数)。
function Graph() { this.vertexes = []; this.edges = [];}Graph.prototype = { addVertex: function(v){ this.vertexes.push(v); }};var g = new Graph();// g是生成的对象,他的自身属性有'vertexes'和'edges'.// 在g被实例化时,g.[[Prototype]]指向了Graph.prototype.
使用 Object.create 创建对象
ECMAScript 5 中引入了一个新方法:Object.create()
。可以调用这个方法来创建一个新对象。新对象的原型就是调用 create
方法时传入的第一个参数:
var a = {a: 1}; // a ---> Object.prototype ---> nullvar b = Object.create(a);// b ---> a ---> Object.prototype ---> nullconsole.log(b.a); // 1 (继承而来)var c = Object.create(b);// c ---> b ---> a ---> Object.prototype ---> nullvar d = Object.create(null);// d ---> nullconsole.log(d.hasOwnProperty); // undefined, 因为d没有继承Object.prototype
使用 class
关键字
ECMAScript6 引入了一套新的关键字用来实现 class。使用基于类语言的开发人员会对这些结构感到熟悉,但它们是不一样的。 JavaScript 仍然是基于原型的。这些新的关键字包括 class
, constructor
,static
, extends
, 和 super
.
"use strict";class Polygon { constructor(height, width) { this.height = height; this.width = width; }}class Square extends Polygon { constructor(sideLength) { super(sideLength, sideLength); } get area() { return this.height * this.width; } set sideLength(newLength) { this.height = newLength; this.width = newLength; }}var square = new Square(2);
1 0
- 使用不同的方法来创建对象和生成原型链
- JavaScript--创建对象和生成原型链的方法
- javascript使用原型(prototype)方法创建对象
- JavaScript原型、原型链、对象的创建
- javascript对象的创建方式,原型,方法
- 对象的创建方法之三---组合使用构造函数模式和原型模式(最常用的模式)
- 基于原型的对象创建和继承
- 对象的创建>原型
- 不同浏览器创建 XMLHttpRequest 对象的方法
- js 创建对象的两种主要方法 构造函数 和 原型+构造函数组合
- JavaScript使用原型创建对象
- 不同的浏览器创建ajax引擎对象的方法不同
- 组合使用构造模式和原型模式创建对象
- 创建对象-组合使用构造函数和原型模式
- C++和Java创建对象的不同
- 原型对象和原型链
- 原型对象和原型链
- JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型
- 关于iOS 简单动画效果的实现(用 beginAnimations 和 commitAnimations 来实现最简单的动画)
- 《Python for kids》学习笔记(三)
- AFNetworking2.0源码解析<二>
- POI操作Excel常用方法总结
- h5手机适配字体大小
- 使用不同的方法来创建对象和生成原型链
- SecondaryNameNode作用
- 框架模式 MVC 在Android中的使用
- 【React Native开发】React Native库版本升级(Upgrading)与降级讲解
- strlen源码剖析
- Windows下查看占用指定端口进程、kill进程命令
- git 错误: Unable to find remote helper for 'https'解决方法
- cocos creator发布
- kafka-python安装