飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

JavaScript对象“this”方法

时间:2021-11-25  作者:匿名  

对象方法,"this"

通常创建对象来表示真实世界中的实体,如用户和订单等:

let user = {
  name: "John",
  age: 30
};

并且,在现实世界中,用户可以进行 操作:从购物车中挑选某物、登录和注销等。

在 JavaScript 中,行为(action)由属性中的函数来表示。

方法示例

这里我们来做一个简单的带有函数的属性,作为对象属性的函数被称为 方法:

<!DOCTYPE html>
<script>
let user = {
  name: "John",
  age: 30
};
user.sayHi = function() {
  alert("你好!");
};
user.sayHi(); // 调用对象sayHi属性 弹出信息“你好!”
</script>

这里我们使用函数表达式创建了一个函数,并将其指定给对象的 user.sayHi 属性。

我们可以看到,当我们调用user对象的sayHi属性的时候,执行了函数内部代码,弹出了你好信息。

当然,我们也可以使用预先声明的函数作为方法,就像这样:

let user = {
  // ...
};
// 首先,声明函数
function sayHi() {
  alert("你好!");
};
// 然后将其作为一个方法添加
user.sayHi = sayHi;
user.sayHi(); // 弹出 你好!

面向对象编程

当我们在代码中用对象表示实体时,就是所谓的 面向对象编程,简称为 “OOP”。

方法简写

在对象字面量中,有一种更短的(声明)方法的语法:

// 这些对象作用一样
user = {
  sayHi: function() {
    alert("你好");
  }
};
// 方法简写看起来更好,对吧?
let user = {
  sayHi() { // 与 "sayHi: function()" 一样
    alert("你好");
  }
};

如上所示,我们可以省略 "function",只写 sayHi()。

方法中的 “this”

通常,对象方法需要访问对象中存储的信息才能完成其工作。

this 的值就是在点之前的这个对象,即调用该方法的对象。

<!DOCTYPE html>
<script>
let user = {
  name: "John",
  age: 30,
  sayHi() {
    // "this" 指的是“当前的对象”
    alert(this.name);
  }
};
user.sayHi(); // 输出name属性的值John
</script>

“this” 不受限制

在 JavaScript 中,this 关键字与其他大多数编程语言中的不同。JavaScript 中的 this 可以用于任何函数,即使它不是对象的方法。

this 的值是在代码运行时计算出来的,它取决于代码上下文。

let user = { name: "John" };
let admin = { name: "Admin" };
function sayHi() {
  alert( this.name );
}
// 在两个对象中使用相同的函数
user.f = sayHi;//弹出 John
admin.f = sayHi;//弹出 Admin
// 这两个调用有不同的 this 值
// 函数内部的 "this" 是“点符号前面”的那个对象
user.f(); // John(this == user)
admin.f(); // Admin(this == admin)
admin['f'](); // Admin(使用点符号或方括号语法来访问这个方法,都没有关系。)

在没有对象的情况下直接调用:this == undefined

function sayHi() {
  alert(this);
}
console.log ( sayHi() ); // console.log为在控制台输出记录 显示 undefined
搜你所爱
JavaScript基础教程:目录
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。