JavaScript基础知识-this

简介: 关于JavaScript中this关键字的基础知识,通过比较其他编程语言如Python中的self参数来帮助读者理解。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

  后记:

    其实有过其他编程经验(比如C++,Java,Python等)的小伙伴可能很容易理解这个this。

    以Python为例,还记得为类定义各种普通方法(及未使用装饰器装饰的方法)吗,它们都会涉及一个动态绑定的第一参数self。其实JavaScript的原理和其类似。

一.JavaScript源代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>this</title>
    <script type="text/javascript">

        var name = "JavaScript";

        /**
         *  解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象。
         *
         *  this对象(浏览器在渲染代码时由浏览器隐式传参)我们称为函数执行的上下文对象,根据函数的调用方式的不同,this会指向不同的对象。
         *      (1)以函数的形式调用时,this永远都是window;
         *      (2)以方法的形式调用时,this永远都是object;
         *
         */
        function sayHello(name,age){
            console.log("this = %s",this)
            // 一旦有this的存在,我们可以根据不同调用者返回不同的name属性哟~
            console.log("this.name = %s",this.name)
            console.log("I'm %s, and I'm %d years old.",name,age);
        }

        /**
         *  创建一个对象,我们封装上面的函数
         */
        var obj1 = {
            name:"尹正杰",
            sayHi:sayHello
        }

        var obj2 = {
            name:"Jason Yin",
            sayHi:sayHello
        }


        // 如下所示。根据函数的调用方式不同,this会指向不同的对象。
        sayHello("Python",25);
        obj1.sayHi("CentOS",18);
        obj2.sayHi("Ubuntu",20);

    </script>
</head>
<body>

</body>
</html>

二.浏览器打开以上代码渲染结果

目录
相关文章
N..
|
7月前
|
存储 JavaScript 前端开发
JavaScript基础知识
JavaScript基础知识
N..
53 1
|
6月前
|
存储 JavaScript 前端开发
Javascript基础知识
Javascript基础知识
46 1
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-方法
文章通过示例代码讲解了JavaScript中如何给对象添加方法以及如何调用这些方法。
35 2
JavaScript基础知识-方法
|
存储 JavaScript 前端开发
一篇文章带你学完JavaScript基础知识,超全的JavaScript知识点总结
一篇文章带你学完JavaScript基础知识,超全的JavaScript知识点总结
291 3
一篇文章带你学完JavaScript基础知识,超全的JavaScript知识点总结
|
7月前
|
JavaScript 前端开发 Java
javaScript(一):javaScript基础知识
JavaScript是一种常用的脚本语言,通常用于为网页添加动态功能和交互性。它是一种解释性语言,可以直接在网页的HTML代码中嵌入,并由浏览器解释执行。JavaScript广泛用于网页开发,可以用于验证表单输入、创建动态效果、操作网页元素、处理用户事件等。
57 2
|
JavaScript 前端开发
【javaScript】基础知识续一
落下的东西始终是要补上的,欠下的始终是要还的,但是以后还是需要及时总结的好。
|
JavaScript 前端开发
【javaScript】基础知识
最近抽了每天都抽出了一小小部分时间来学习javaScript简单将这几天学到的东西进行总结。
|
JSON JavaScript 前端开发
JavaScript的基础知识总结(3)
JavaScript的基础知识总结(2)
107 0
|
Web App开发 JavaScript 前端开发
【JavaScript详解】一文掌握JavaScript基础知识(下)(一)
【JavaScript详解】一文掌握JavaScript基础知识(下)(一)
|
JavaScript 前端开发 Java
【JavaScript详解】一文掌握JavaScript基础知识(下)(二)
【JavaScript详解】一文掌握JavaScript基础知识(下)(二)
105 0