> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 강화 튜토리얼 - 단순한 것부터 복잡한 것까지

JavaScript 강화 튜토리얼 - 단순한 것부터 복잡한 것까지

黄舟
풀어 주다: 2017-01-21 16:09:07
원래의
1509명이 탐색했습니다.

JS,无需编译,直译式脚本语言,解释器是JavaScript引擎-浏览器一部分。
动态类型、弱类型、基于原型,内置支持类型。
组成部分
ECMAScript,描述了该语言的语法和基本对象。
文档对象模型(DOM),描述处理网页内容的方法和接口。
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 
编程
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,
而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
console.log("a");//这是正确的
console.log("b");//这是正确的
console.logg("c");//这是错误的,并且到这里会停下来
console.log("d");//这是正确的
console.log("e");//这是正确的
 
try{console.log("a");}catch(e){}//这是正确的
try{console.log("b");}catch(e){}//这是正确的
try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d");}catch(e){}//这是正确的
try{console.log("e");}catch(e){}//这是正确的
Javascript被归类为直译语言,因为目前主流的引擎都是每次运行时加载代码并解译。
Javascript原型总会给人产生一些困惑,无论是经验丰富的专家,还是作者自己也时常表现出对这个概念某些有限的理解,我认为这样的困惑在我们一开始接触原型时就已经产生了,
它们常常和new、constructor相关,特别是函数(function)的原型(prototype)属性(property)。事实上,原型是一种非常简单的概念。为了更好的理解它,我们应该首先记住这个原则
,那就是忘记我们已经学到的关于构造原型(construtor prototypes)的认识。

什么是原型?

原型是一个对象,其他对象可以通过它实现属性继承。

任何一个对象都可以成为原型么?

是

哪些对象有原型

所有的对象在默认的情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型(只有一种例外,默认的对象原型在原型链的顶端。更多关于原型链的将在后面介绍)

好吧,再绕回来,那什么又是对象呢?

在javascript中,一个对象就是任何无序键值对的集合,如果它不是一个主数据类型(undefined,null,boolean,number,or string),那它就是一个对象

你说每个对象都有一个原型,可是我当我写成({}).prototype 我得到了一个null,你说的不对吧?

忘记你已经学到的关于原型属性的一切,它可能就是你对原型困惑的根源所在。一个对象的真正原型是被对象内部的[[Prototype]]属性(property)所持有。
ECMA引入了标准对象原型访问器Object.getPrototype(object),到目前为止只有Firefox和chrome实现了此访问器。除了IE,其他的浏览器支持非标准的访问器__proto__,
如果这两者都不起作用的,我们需要从对象的构造函数中找到的它原型属性。下面的代码展示了获取对象原型的方法
로그인 후 복사

상속에서 프로토타입을 사용하고 싶은데 어떻게 해야 하나요?


인스턴스에만 프로토타입을 사용하는 것은 이 인스턴스에 직접 속성을 추가하는 것과 같습니다. 이미 인스턴스 객체를 생성했다면 기존 객체를 상속하려고 합니다. . Array와 같은 객체의 기능은 다음과 같이 할 수 있습니다(__proto__를 지원하는 브라우저에서)

JavaScript

var a = {}; 

 //Firefox 3.6 and Chrome 5 

 Object.getPrototypeOf(a); //[object Object]   

 //Firefox 3.6, Chrome 5 and Safari 4 

a.__proto__; //[object Object]   

 //all browsers 

 a.constructor.prototype; //[object Object]

var a = {}; 
 
 //Firefox 3.6 and Chrome 5 
 
 Object.getPrototypeOf(a); //[object Object]   
 
 //Firefox 3.6, Chrome 5 and Safari 4 
 
a.__proto__; //[object Object]   
 
 //all browsers 
 
 a.constructor.prototype; //[object Object]
로그인 후 복사

위는 JavaScript 향상 튜토리얼입니다. 간단한 것부터 복잡한 것까지, PHP에 주목하세요. 더 많은 관련 컨텐츠 중국사이트 (www.php.cn)!



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿