编程prototype,编程猫

http://www.itjxue.com  2023-01-08 01:19  来源:未知  点击次数: 

编程分类

编程语言的分类主要有:JavaScript、PHP、C、C++、java。 扩展资料

C语言:实模式、保护模式、调度、中断、调用栈、回调……基本上计算机科学里面的基本概念都会涉及。结构化编程,即将解决方案描述为一个清晰的过程,这其中会涉及数据的建模,接口的定义,项目整体的组织结构。

c++语言:虚函数、虚表、内联、多继承、const、泛型、模板(语言相关)opencv、OGRE、3D渲染、GPU、mesh、skeleton、帧循环、DX、GUI、MFC、Qt、消息队列、非阻塞IO。适合领域:多媒体、高性能网络服务器等较讲究效率的.应用程序。

java:字节码、虚拟机、垃圾回收、接口、多线程、包、程序库、反射、框架、集成、组件、http、web、数据库、SSH、javaee。java的程序比较讲究扩展性和可维护性,一般会使用比较多的设计模式,常用的程序组织形式是MVC、监听者模式等。

Javascript:闭包、对象、函数、CSS、DOM、Ajax、HTML5、node.js、V8。基于prototype的OO,以及基于闭包的函数式编程(后者用的更多)。常用代码组织形式:事件触发的回调机制(node.js与前端的区别是其自己定义、触发事件)、基于非阻塞异步IO的框架(node.js)。

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

请教关于Object.prototype.toString.call

这里涉及到Object.prototype.toString.call()原因是b是个对象,不能作为属性。这里要强制转换为String。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】

__proto__ 和 prototype 的区别

每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。

也就是说prototype 是原型,是Function对象才有的属性,原型主要是用来实现继承,从而用js 进行面向对象编程

如 Foo 是一个Function对象,是有prototype属性的 ,它指向一个Boo 的实例对象

而p 是一个 Foo 的实例对象,不是一个Function 对象,没有prototype 属性,但是p有一个私有属性__proto__ 这个属性,一般不直接访问的,事实上这个属性就是 Foo.prototype

在chrome控制台中测试

console.log(p.__proto__ == Foo.prototype)

VM952:2 true

console.log(p.__proto__ === Foo.prototype)

VM956:2 true

上述测试都输出true,说明他们确实是同一个东西

js的继承是通过原型继承的,有个原型链的概念,而原型链就是通过__proto__属性实现的

function Boo() {this.x="test in Boo";}

function Foo() {this.y = "test in Foo"}

Foo.prototype = new Boo;

p=new Foo;

console.log(p.y);//test in Foo

console.log(p.x);//test in Boo

Foo 中并没有属性x,当p找不到属性x时,就到p.__proto__属性(指向原型)中找,原型中是有x属性的,于是输出x的值

如果不考虑内部实现,就好像属性x是从Boo中继承的一样

console.log(p.__proto__); ? 输出 Boo{}表示一个空的Boo对象(通过 new Boo 创建的 )

p.__proto__.p.__proto__这个会报错,因为p.__proto__中没有名为p的属性

function Foo() {}

p=new Foo;

console.log(p.__proto__);

因为没有改变Foo.prototype 的属性,所以仍然指向它自己(Foo)

而 p.__proto__ 就是 Foo.prototype 所有输出Foo{} 表示一个空的Foo对象。

为什么实例没有prototype属性?什么时候对象会有prototype属性

从有了Ajax这个概念,JavaScript作为Ajax的利器,其作用一路飙升。JavaScript最基本的使用,以及语法、浏览器对象等等东东在这里就不累赘了。把主要篇幅放在如何实现JavaScript的面向对象编程方面。 1. 用JavaScript实现类 JavaScritpt没有专门的机制实现类,这里是借助它的函数允许嵌套的机制来实现类的。一个函数可以包含变量,又可以包含其它函数,这样,变量可以作为属性,内部的函数就可以作为成员方法了。因此外层函数本身就可以作为一个类了。如下:function myClass()这里 myClass就是一个类。其实可以把它看成类的构造函数。至于非构造函数的部分,以后会详细描述。 2. 如何获得一个类的实例 实现了类就应该可以获得类的实例,JavaScript提供了一个方法可以获得对象实例。即 new操作符。其实JavaScript中,类和函数是同一个概念,当用new操作一个函数时就返回一个对象。如下:var obj1 = new myClass(); 3. 对象的成员的引用 在JavaScript中引用一个类的属性或方法的方法有以下三种。 1 点号操作符 这是一种最普遍的引用方式,就不累赘。即如下形式:对象名.属性名;对象名.方法名; 2 方括号引用 JavaScript中允许用方括号引用对象的成员。如下:对象名["属性名"];对象名["方法名"]; 这里方括号内是代表属性或方法名的字符串,不一定是字符串常量。也可以使用变量。这样就可以使用变量传递属性或方法名。为编程带来了方便。在某些情况下,代码中不能确定要调用那个属性或方法时,就可以采用这种方式。否则,如果使用点号操作符,还需要使用条件判断来调用属性或方法。 另外,使用方括号引用的属性和方法名还可以以数字开头,或者出现空格,而使用点号引用的属性和方法名则遵循标示符的规则。但一般不提倡使用非标示符的命名方法。 3 使用eval函数 如果不希望使用变量传递变量或方法名,又不想使用条件判断,那么eval函数是一个好的选择。eval接收一个字符串类型的参数,然后将这个字符串作为代码在上下文中执行,返回执行的结果。这里正是利用了eval的这一功能。如下:alert(eval("对象名." + element.value)); 4. 对对象属性,方法的添加、修改和删除操作 JavaScript中,在生成对象之后还可以为对象动态添加、修改和删除属性和方法,这与其它面向对象的语言是不同的。

js构造函数中如何调用prototype内方法

取消

首页

编程

手机

软件

硬件

安卓

苹果

手游

教程

平面

服务器

首页 网络编程 JavaScript javascript技巧 js构造函数constructor和原型prototype

js构造函数constructor和原型prototype原理与用法实例分析

发布时间:2020-03-02 09:43:39 作者:叶落森

本文实例讲述了js构造函数constructor和原型prototype原理与用法。分享给大家供大家参考,具体如下:

所有引用类型(函数,数组,对象)都拥有__proto__属性(隐式原型)

所有函数拥有prototype属性(显式原型)(仅限函数)

原型对象:拥有prototype属性的对象,在定义函数时就被创建

__proto__, prototype和constructor

下面这三个属性的定义非常重要,始终贯穿在原型中。

prototype:此属性只有构造函数才有,它指向的是当前构造函数的原型对象。

__proto__:此属性是任何对象在创建时都会有的一个属性,它指向了产生当前对象的构造函数的原型对象,由于并非标准规定属性,不要随便去更改这个属性的值,以免破坏原型链,但是可以借助这个属性来学习,所谓的原型链就是由__proto__连接而成的链。

constructor:此属性只有原型对象才有,它默认指回prototype属性所在的构造函数。

构造函数的特点:

 a:构造函数的首字母必须大写,用来区分于普通函数

 b:内部使用的this对象,来指向即将要生成的实例对象

 c:使用New来生成实例对象

function定义的对象有一个prototype属性,使用new生成的对象就没有这个prototype属性(Person是一个对象)

Person是一个对象,它有一个prototype的原型属性(因为所有的对象都一prototype原型!)prototype属性有自己的prototype对象,而pototype对象肯定也有自己的construct(构造)属性,construct属性有自己的constructor(构造函数)对象,神奇的事情要发生了,这最后一个

JavaScript里面的prototype是什么意思?怎么用?能举个例子吗?

翻译一下是原型的意思~也就是说是JS对象的原型,一般用来扩展原型的时候用~或者用到原型链式的继承上去~举个例子:

声明一个对象var abc=function(){

this.name="小明";

}

abc现在是一个对象(函数也是对象的一种),然后我们扩展一下这个对象,给它一个方法:

abc.prototype.say=function(){

alert(this.name);

}

这样就扩展了原来的函数对象了~是用的时候直接var a=new abc();

a.say();就会弹出小明来了。这么做的好处是不会额外产生内存,所有实例化后的对象都会从原型上继承这个方法。

至于原型链继承的话你可以去搜一下我就不举例子了~不懂的话可以再问我~

(责任编辑:IT教学网)

更多

推荐word文章