对象
- 英文名称:Object。
- 类似于C++中的map,python中的字典,由key:value对构成。
- value可以是变量、数组、对象、函数等。
- 函数定义中的this用来引用该函数的“拥有者”。
例如:
test.js中的内容为:test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码对象属性与函数的调用方式(访问对象的值的方式):
1. 点的方式,person.name、person.add_money()
2. 中括号的方式,person["name"]、person["add_money"]()
例如:
test.js中的内容为:- let person = { // 定义一个对象person<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>name:'kitty', // 对象的元素可以是变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>age:18,<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>money:0,<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>friends:['Alice', 'Bob', 'Lucy'], // 对象的元素可以是数组<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>clothes:{ // 对象的元素可以是对象<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>color:'pink',<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>price: 100,<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>},<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>add_money:function(x){ // 对象的元素可以是函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>this.money += x; // this:返回拥有这个函数的对象,这里指person<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>}}function main(){<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>// 1. 点的方式,类似于c++中的class类<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(person.name, person.age, person.clothes); // kitty 18 {color:'pink',price: 100}<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>// delete person.name; // 删除对象的属性<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(person.money); // 0<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>person.add_money(10); // 调用函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(person.money); // 10<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>// 2. 中括号的方式<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(person["money"]); // 10<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>person["add_money"](10); // 调用函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(person["money"]); // 20}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码数组
- 数组是一种特殊的对象,用中括号[ ]表示。
- 类似于C++中的数组,但是数组中的元素类型可以不同。
- 数组中的元素可以是变量、数组、对象、函数。
例如:
test.js中的内容为:- let a = [1, 2, "a", "kitty", [3, 4, 5]];let b = [<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>1, // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>"kitty", // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>['a', 'b', 3], // 数组<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>function () { // 函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log("Hello World");<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>},<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>{ name: "kitty", age: 18 } // 对象];let c = []; // 定义一个空数组let d = {}; // 定义一个空对象(没有任何成员的对象)let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(a);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(c);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(d);}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码访问数组中的元素:
例如:
test.js中的内容为:- let a = [1, 2, "a", "kitty", [3, 4, 5]];let b = [<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>1, // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>"kitty", // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>['a', 'b', 3], // 数组<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>function () { // 函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log("Hello World");<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return 0; // 如果不加这句话,执行函数后返回undefined<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>},<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>{ name: "kitty", age: 18 } // 对象];let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b[0]); // 访问数组b[]的第0个元素,返回 1<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b[2][1]); // 返回 b<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b[3]); // 返回函数的定义: ƒ () { console.log("Hello World");return 0; }<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b[3]()); // 执行函数,返回 Hello World 0<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b[4].name) // 返回对象的元素,返回 kitty<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body> // 或者 console.log(b[4]['name']);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>b[0] = function() { // 给b的第0个元素重新赋值为函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log("哈哈哈");<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>}<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>b[0](); // 执行函数b[0],返回 哈哈哈}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码数组的常用属性和函数:
- 属性length:返回数组长度。注意length是属性,不是函数,因此调用的时候不要加()
- 函数push():向数组末尾添加元素
- 函数pop():删除数组末尾的元素
- 函数splice(a, b):删除从a开始的b个元素
- 函数sort():将整个数组从小到大排序
- 自定义比较函数:array.sort(cmp),函数cmp输入两个需要比较的元素,返回一个实数,负数表示第一个参数小于第二个参数,0表示相等,正数表示大于。
test.js中的内容为:- let a = [5, 4, 1, 3, 2];let b = [<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>1, // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>"kitty", // 变量<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>['a', 'b', 3], // 数组<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>function () { // 函数<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log("Hello World");<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return 0; // 如果不加这句话,执行函数后返回undefined<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>},<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>{ name: "kitty", age: 18 } // 对象];let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b.length); // 返回数组的长度,返回5<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>b.push(5); // 在末尾添加新的元素<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>b.pop(); // 删除最后一个元素<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(b);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>a.sort(); // 排序(从小到大),返回[1, 2, 3, 4, 5]<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(a);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>a.sort(function(a, b) { // 逆序(从大到小),返回[5, 4, 3, 2, 1]<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body><body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return b - a;<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>})<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(a);<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>a.splice(1, 2); // 删除从下标1开始的2个元素,返回[5, 2, 1]<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(a);}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码函数
- 函数是用对象来实现的。
- 函数与C++中的函数类似。
函数的定义方式:
例如:
test.js中的内容为:- // 第一种定义方式function add(a, b) {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return a + b;}let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(add(3, 4));}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.js中的内容为:- // 第二种定义方式let add = function(a, b) {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return a + b;}let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(add(3, 4));}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.js中的内容为:- // 第三种定义方式let add = (a, b) => {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>return a + b;}let main = function() {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>console.log(add(3, 4));}export {<body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>main}
复制代码 test.html中的内容为:- <body>
- <body>
- <body>
- <body>
- <body>
- <body>
-
- </body>
- </body>
- </body>
- </body>
- </body>
- </body>
复制代码返回值:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |