北海做网站的公司,代码生成器属于什么工具,网站建设的软硬件平台,wordpress怎么静态化在JavaScript中并没有类的概念#xff0c;但javascript中的确可以实现重载#xff0c;多态#xff0c;继承。这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。 1、prototype 在JavaScript中并没有类的概念#xff0c;但JavaScript中的确可以实… 在JavaScript中并没有类的概念但javascript中的确可以实现重载多态继承。这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。 1、prototype 在JavaScript中并没有类的概念但JavaScript中的确可以实现重载多态继承。这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。2、简单的例子 复制代码 代码如下: [javascript] view plaincopy var Blog function( name, url ){ this.name name; this.url url; }; Blog.prototype.jumpurl ; Blog.prototype.jump function(){ window.location this.jumpurl; }; /* *等同于 Blog.prototype { jumpurl : , jump : function(){ window.location this.jumpurl; } }; */ var rainman new Blog(jb51, http://www.jb51.net); var test new Blog(server, http://s.jb51.net); 这是一个非常简单的例子但却可以很好的解释prototype内在的一些东西先看下图的内存分配 通过上图可以看到下面这些内容 prototype只是函数的一个属性该属性的类型是一个对象。 内存分配状况 函数Blog拥有一个prototype属性而prototype属性拥有一个变量和一个函数 test和rainman两个变量都分别有name和url两个变量 test和rainman两个变量都有一个jumpUrl变量和一个jump函数但是并没有分配内存它们是对Blog.protype中的引用 3、扩展1 复制代码 代码如下: [javascript] view plaincopy Website.prototype Blog.prototype var Blog function( name, url ){ this.name name; this.url blogurl; }; Blog.prototype.jumpurl ; Blog.prototype.jump function(){ window.location this.jumpurl; }; var rainman new Blog(jb51, http://www.jb51.net); var test new Blog(server, http://s.jb51.net); var Website function(){}; Website.prototype Blog.prototype; var mysite new Website(); 通过上图可以看到下面这些内容 Website.prototype Blog.prototype;Website的prototype并没有分配内存只是引用了Blog的prototype属性。mysite的两个属性也没有分配内存也只是分别引用了Blog.prototype.jumpurl和Blog.prototype.jump 4、扩展2 复制代码 代码如下: [javascript] view plaincopy Website.prototype new Blog() var Blog function(){}; Blog.prototype.jumpurl ; Blog.prototype.jump function(){ window.location this.jumpurl; }; var Website function(){}; Website.prototype new Blog(); var mysite new Website(); 通过上图可以看到下面这些内容 Website的prototype属性只是Blog的一个实例 同rainmannew Blog(); ;因此Website的prototype属性就具有了jumpurl变量和jump方法了。mysite是Website的一个实例它的jumpurl和jump方法是继承自Website的prototype而Web.prototype继承自Blog.prototype这里与其说是继承不如说是引用整段程序在运行的过程中内存中只分配了一个jumpurl变量和一个jump方法 5、new运算符 JavaScript中new运算符。 JavaScript中new运算符是创建一个新对象。使用方法 new constructor[(arguments)] 其中constructor是必选项。对象的构造函数。如果构造函数没有参数则可以省略圆括号。 arguments是可选项。任意传递给新对象构造函数的参数。 JavaScript中new运算符说明 new 运算符执行下面的任务 创建一个没有成员的对象。 为那个对象调用构造函数传递一个指针给新创建的对象作为 this 指针。 然后构造函数根据传递给它的参数初始化该对象。 示例 下面这些是有效的 new 运算符的用法例子。 my_object new Object; my_array new Array(); my_date new Date(Jan 5 1996);6、其它 在绝大多数JavaScript版本中js引擎都会给每个函数一个空的原型对象即prototype属性。