Implement inheritance using call in javascript_javascript skills
Yesterday, Adan sent me an overloading example in javascript, which feels good. Although I still don’t understand how to implement it, I still posted it.
Implementing setTimeout and passing object objects
See the following code implementation Pass parameters to the function inside
call method Description in JScript Reference: Call a method of an object and replace the current object with another object. call([thisObj[,arg1[, arg2[, [,.argN]]]]]), but there is no example
Instructions in the apply method JScript reference: Apply a method of an object and replace it with another object current object. apply([thisObj[,argArray]])
In fact, the functions of these two are almost the same. What should be noted is that the arg parameter in call(thisObj[,arg1[, arg2[,)) can be a variable. The parameters in apply([thisObj[,argArray]]) are array collections.
This morning I saw another example of using call to implement inheritance. Haha... I also posted it together. This example is relatively simple. Even if it is from the shallower to the deeper
<script> <BR>var _st = window.setTimeout; <BR>window.setTimeout = function(fRef, mDelay) { <BR> if(typeof fRef == 'function'){ <BR> var argu = Array.prototype.slice.call(arguments,2); <BR> var f = (function(){ fRef.apply(null, argu); }); <BR> return _st(f, mDelay); <BR> } <BR> return _st(fRef,mDelay); <BR>} <BR>function test(x){ <BR> alert(x); <BR>} <BR>window.setTimeout(test,1000,'fason'); <BR></script><script> <br><br> function father(){//父类 <br><br> var self=this; //私有变量,子类里不会继承! <br><br> var var_private="private variable"; //私有变量 <br><br> this.var_public="public variable"; //公有变量 <br><br> <br><br> this.author="xling"; <br><br> this.test=function(msg){ //公有方法 <br><br> alert("该方法位于父类 :" + msg + "\n" + self.author); <br><br> } <br><br> <br><br> var test2=function(){ //私有方法,子类不能调用 <br><br> alert("这个方法是父类的私有方法"); <br><br> } <br><br> } <br><br> <br><br> function father2(){ <br><br> this.email="xlingFairy#hotmail.com"; <br><br> } <br><br> <br><br> function suber(){//子类 <br><br> father.call(this);//通过这一句来继承父类(father)类的可见变量及方法(this) <br><br> } <br><br> <br><br> function sun(){ <br><br> suber.call(this); <br><br> father2.call(this);//和上面的一句放在一起,實現多重繼承!爽啊! <br><br> } <br><br> <br><br> var mySuber=new suber(); <br><br> mySuber.test("参数是从子类的实例里传入的"); <br><br> //mySuber.test2(); //这一句会发生错误码,因为test2是父类的私有类 <br><br> alert("父类的私有变量,子类不能读取:" + mySuber.var_private); <br><br> alert("父类的公有变量,子类可以读取" + mySuber.var_public); <br><br> <br><br> var mySun=new sun(); <br><br> mySun.test("这个是从孙子级的实例里传入的参数"); <br><br> alert("父类的私有变量,子类不能读取:" + mySun.var_private); <br><br> alert("父类的公有变量,子类可以读取" + mySun.var_public); <br><br> alert(mySun.email); <br><br></script>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

How to merge array elements with the same ID into one object in JavaScript? When processing data, we often encounter the need to have the same ID...

Learning JavaScript is not difficult, but it is challenging. 1) Understand basic concepts such as variables, data types, functions, etc. 2) Master asynchronous programming and implement it through event loops. 3) Use DOM operations and Promise to handle asynchronous requests. 4) Avoid common mistakes and use debugging techniques. 5) Optimize performance and follow best practices.

Discussion on the realization of parallax scrolling and element animation effects in this article will explore how to achieve similar to Shiseido official website (https://www.shiseido.co.jp/sb/wonderland/)...

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...

Explore the implementation of panel drag and drop adjustment function similar to VSCode in the front-end. In front-end development, how to implement VSCode similar to VSCode...
