金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > web前端 > 历时八年,继承的实现方式及原型概述

历时八年,继承的实现方式及原型概述

发布时间:2019-11-02 10:03编辑:web前端浏览(139)

    继承的实现方式及原型概述

    2015/07/15 · JavaScript · 原型, 继承

    原文出处: 名一的博客   

    对于 OO 语言,有一句话叫“Everything is object”,虽然 JavaScript 不是严格意义上的面向对象语言,但如果想要理解 JS 中的继承,这句话必须时刻铭记于心。

    JS 的语法非常灵活,所以有人觉得它简单,因为怎么写都是对的;也有人觉得它难,因为很难解释某些语法的设计,谁能告诉我为什么 typeof null 是 object 而 typeof undefined 是 undefined 吗?并且这是在 null == undefined 的前提下。很多我们自认为“懂”了的知识点,细细琢磨起来,还是会发现有很多盲点,“无畏源于无知”吧……

    历时八年,HTML5 标准终于完工了

    2014/10/29 · HTML5 · HTML5

    原文出处: 驱动之家   

    万维网联盟(W3C)今天泪流满面地宣布,经过几乎8年的艰辛努力,HTML5标准规范终于最终制定完成了,并已公开发布。

    在此之前的几年时间里,已经有很多开发者陆续使用了HTML5的部分技术,Firefox、Google Chrome、Opera、Safari 4+、Internet Explorer 9+都已支持HTML5,但直到今天,我们才看到“正式版”。

    HTML5将会取代1999年制定的HTML 4.01、XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求,为桌面和移动平台带来无缝衔接的丰富内容。

    W3C CEO Jeff Jaffe博士表示:“HTML5将推动Web进入新的时代。不久以前,Web还只是上网看一些基础文档,而如今,Web是一个极大丰富的平台。我们已经进入一个稳定阶段,每个人都可以按照标准行事,并且可用于所有浏览器。如果我们不能携起手来,就不会有统一的Web。

    HTML5还有望成为梦想中的“开放Web平台”(Open Web Platform)的基石,如能实现可进一步推动更深入的跨平台Web应用。

    接下来,W3C将致力于开发用于实时通信、电子支付、应用开发等方面的标准规范,还会创建一系列的隐私、安全防护措施。

    W3C还曾在2012年透露说,计划在2016年底前发布HTML 5.1

    HTML5正式版:

    赞 收藏 评论

    图片 1

    JS 框架比较:AngularJS vs ReactJS vs EmberJS

    2016/12/08 · JavaScript · 1 评论 · AngularJS, EmberJS, ReactJS

    原文出处: Nataliya Orlovska   译文出处:码农网 – 小峰   

    选择最适合项目需求的JavaScript框架,可以提高你发布有竞争力的web app的能力。

    最后,你对基于JavaScript的app或网站找到了一条奇妙的思路。选择正确的框架可能对你项目的成功有着相当大的影响。它可以影响你按时完成项目并在将来维护代码的能力。JavaScript框架,如Angular.js,Ember.js或React.js,给你的代码带来结构,并保持其有序化,从而使您你的app更灵活,更具可扩展性,并更容易开发。

    图片 2

    1. 简单对象

    既然是讲继承,自然是从最简单的对象说起:

    JavaScript

    var dog = { name: 'tom' }

    1
    2
    3
    var dog = {
      name: 'tom'
    }

    这便是对象直接量了。每一个对象直接量都是 Object 的子类,即

    JavaScript

    dog instanceof Object; // true

    1
    dog instanceof Object; // true

    Javascript场景的易变性

    Web开发的变化发生的很快。几乎每个月都会引入一个新的JavaScript框架,并且现有的框架经常被更新。由于这些框架是开放源代码的,因此世界各地的大型社区也都可以不断地使之丰满起来。因此,了解每个框架的优点和它们之间的区别并不是一件容易的事情。

    2. 构造函数

    JS 中的构造函数与普通函数并没有什么两样,只不过在调用时,前面加上了 new 关键字,就当成是构造函数了。

    JavaScript

    function Dog(name) { this.name = name; } var dog = new Dog('tom'); dog instanceof Dog; // true

    1
    2
    3
    4
    5
    6
    7
    function Dog(name) {
      this.name = name;
    }
     
    var dog = new Dog('tom');
     
    dog instanceof Dog; // true

    两个问题,第一,不加 new 关键字有什么后果?

    那么 Dog 函数中的 this 在上下文(Context)中被解释为全局变量,具体在浏览器端的话是 window 对象,在 node 环境下是一个 global 对象。

    第二,dog 的值是什么?很简单,undefined 。Dog 函数没有返回任何值,执行结束后,dog 的值自然是 undefined 。

    关于 new 的过程,这里也顺便介绍一下,这个对后面理解原型(prototype)有很大的帮助:

    1. 创建一个空的对象,仅包含 Object 的属性和方法。
    2. 将 prototype 中的属性和方法创建一份引用,赋给新对象。
    3. 将 this 上的属性和方法新建一份,赋给新对象。
    4. 返回 this 对象,忽略 return 语句。

    需要明确的是,prototype 上的属性和方法是实例间共享的,this 上的属性和方法是每个实例独有的。

    深入Angular vs React vs Ember

    许多开发人员因为JavaScript框架的种类繁多而感到眼花缭乱——框架外观和功能非常不同。

    让我们来比较一下三个最流行和广泛使用的JavaScript框架的优势:AngularJS,ReactJS和EmberJS。

    框架

    AngularJS

    ReactJS

    Ember.js

    是什么?

    超级JavaScript MVW框架

    一个不止用于构建用户界面的JavaScript库

    一个用于创建高要求的web应用程序的框架

    建立

    由MiškoHevery建立于2009年

    创建者:Jordan Walke,2013年开源

    最初由Yehuda Katz于2007年创建叫做SproutCore,后被Facebook收购,并于2011年更名为EmberJS

    官方主页

    https://angularjs.org/

    https://reactjs.net/

    http://emberjs.com/

    Github

    https://github.com/angular/angular.js

    https://github.com/facebook/react

    https://github.com/emberjs/ember.js

    Bug 报告

    https://github.com/angular/angular.js/issues

    https://github.com/facebook/react/issues

    许可证

    MIT

    MIT

    BSD-3-Clause

    被使用的热门网站

    Youtube, Vevo, Freelancer, Istockphoto, Weather, Sky Store

    Facebook, Instagram, Khan Academy, New York Times, Airbnb, Flipkart, Sony Lifelog

    Apple Music, Yahoo!, LinkedIn, TinderBox, Netflix, Groupon

    最适合使用的地方

    构建高度活跃和交互式的Web应用程序。

    数据设置频繁更改的大型Web应用程序

    动态SPA

    3. 引入 prototype

    现在为 Dog 函数加上 prototype,看一个例子:

    JavaScript

    function Dog(name) { this.name = name; this.bark = function() {}; } Dog.prototype.jump = function() {}; Dog.prototype.species = 'Labrador'; Dog.prototype.teeth = ['1', '2', '3', '4']; var dog1 = new Dog('tom'), dog2 = new Dog('jerry'); dog1.bark !== dog2.bark; // true dog1.jump === dog2.jump; // true dog1.teeth.push('5'); dog2.teeth; // ['1', '2', '3', '4', '5']

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function Dog(name) {
      this.name = name;
      this.bark = function() {};
    }
     
    Dog.prototype.jump = function() {};
    Dog.prototype.species = 'Labrador';
    Dog.prototype.teeth = ['1', '2', '3', '4'];
     
    var dog1 = new Dog('tom'),
        dog2 = new Dog('jerry');
     
    dog1.bark !== dog2.bark; // true
    dog1.jump === dog2.jump; // true
     
    dog1.teeth.push('5');
    dog2.teeth; // ['1', '2', '3', '4', '5']

    看到有注释的那三行应该可以明白“引用”和“新建”的区别了。

    那么我们经常说到的“原型链”到底是什么呢?这个术语出现在继承当中,它用于表示对象实例中的属性和方法来自于何处(哪个父类)。好吧,这是笔者的解释。

    JavaScript

    - Object bark: Dog/this.bark() name: 'tom' - __proto__: Object jump: Dog.prototype.jump() species: 'Labrador' + teeth: Array[4] + constructor: Dog() + __proto__: Object

    1
    2
    3
    4
    5
    6
    7
    8
    9
    - Object
      bark: Dog/this.bark()
      name: 'tom'
    - __proto__: Object
        jump: Dog.prototype.jump()
        species: 'Labrador'
      + teeth: Array[4]
      + constructor: Dog()
      + __proto__: Object  

    上面的是 dog1 的原型链,不知道够不够直观地描述“链”这个概念。

    1. 其中,bark 和 name 是定义在 this 中的,所以最顶层可以看到它俩。
    2. 然后,每一个对象都会有一个 __proto__ 属性(IE 11+),它表示定义在原型上的属性和方法,所以 jump、species 和 teeth 自然就在这儿了。
    3. 最后就一直向上找 __proto__ 中的属性和方法。

    4. 继承的几种实现


    AngularJS: 框架领域的冠军

    Angular.js是一个开源的Web应用程序框架,具有由Google提供的Model-View-Controller(MVC)架构(Angular 1)和Model-View-ViewModel(MVVM)架构(Angular 2)。它是上面提到的三个框架中最古老的。因此,它拥有最大的社区。 Angular.js通过使用指令扩展HTML的功能来解决开发SPA(单页应用程序)的问题。此框架强调让你的app快速完成和运行。

    本文由金沙国际官网发布于web前端,转载请注明出处:历时八年,继承的实现方式及原型概述

    关键词: