JavaScript中this

Posted 陆漫漫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中this相关的知识,希望对你有一定的参考价值。

  听燕十八老师的《javascript高级》课程,对JavaScript中this的笔记记录!

  js中函数的四种调用方式:

  1.作为普通的函数来调用时,this的值指向window;在ECMASCRIPT5标准中,如果this为null,则解释成undefined。  

<script type="text/javascript">
	console.log(window.xx);//undefined
	function t(){
		this.xx=33;
	}
	t();
	console.log(window.xx);//33
</script>

   2.作为对象的方法来调用,this指向方法的调用者即母体对象,不管被调用的函数声明时属于方法还是函数。

var obj={
    xx:999,
    t:function(){
	console.log(this.xx)
    }
}
obj.t();//999

var dog={
    xx:"wangwang"
}
dog.t=obj.t;
dog.t();//wangwang

   3.函数作为构造函数调用时,因为js中没有类的概念,创建对象是用构造函数来完成,或者直接用json格式来写对象

function Dog(name,age){
    this.name=name;
    this.age=age;
    this.bark=function(){
        console.log("my name is:"+this.name);
    }
}
var dog=new Dog("虎子",2);
dog.bark(); //my name is:虎子   

   4.函数被call、apply调用,语法:

    函数.call(对象,参数1,参数2......参数n)

function t(num){
	console.log("我的真实年龄是:"+this.age);
	console.log("但我一般告诉别人我:"+(this.age+num));
}
var man={name:"wangwu",age:28};
t.call(man,-10);

 

 

以上是关于JavaScript中this的主要内容,如果未能解决你的问题,请参考以下文章

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

在片段java类中使用“this”和getLastSignedInAccount时出现错误[重复]

Node.js JavaScript 片段中的跳过代码

JavaScript 代码片段

48个值得掌握的JavaScript代码片段(上)