js 模拟地址栏里常用的属性和方法
时间: 2023-03-13 09:30:47 浏览: 63
JavaScript模拟地址栏里常用的属性和方法包括window.location.href,window.location.hash,window.location.search,window.location.pathname,window.location.hostname,window.location.port,window.location.protocol,window.location.assign(),window.location.replace()和window.location.reload()。
相关问题
js 获取地址栏里的参数
在 JavaScript 中,我们可以使用 `window.location.search` 属性来获取地址栏中的参数部分。具体的操作步骤如下:
1. 首先,通过 `window.location.search` 属性可以获取到 URL 中的查询参数部分,它包含了以问号 `?` 开头的所有内容。
2. 然后,我们可以使用字符串相关的方法来解析这个查询参数部分,如 `substring()`、`split()` 等。
3. 例如,我们可以使用 `substring(1)` 来去掉地址栏中的问号 `?`,得到纯粹的查询参数字符串。
4. 接下来,我们可以使用 `split('&')` 方法将查询参数字符串分割为多个参数,返回一个包含所有参数的数组。
5. 然后,我们可以遍历这个数组,使用 `split('=')` 方法将每个参数分割为键和值,返回一个包含键值对的数组。
6. 最后,我们可以根据需要获取指定参数的值,或者将所有参数及其值存储到对象中方便使用。
以下是一个示例代码:
```javascript
function getURLParameters() {
var parameters = {};
var queryString = window.location.search.substring(1); // 去掉问号 '?'
var parameterArray = queryString.split('&');
for (var i = 0; i < parameterArray.length; i++) {
var parameter = parameterArray[i].split('=');
parameters[decodeURIComponent(parameter[0])] = decodeURIComponent(parameter[1] || '');
}
return parameters;
}
var urlParams = getURLParameters();
console.log(urlParams); // 输出包含所有参数及其值的对象
```
通过以上的代码,我们可以获取到地址栏中的参数,并将它们以键值对的形式存储在一个对象中,以便后续的使用。
如何封装js属性和方法
封装 JavaScript 属性和方法的一种常见方式是使用对象字面量或构造函数。两种方式各有优缺点。
对象字面量方式:
```javascript
const obj = {
// 私有属性
_name: 'John',
// 公有属性
age: 25,
// 私有方法
_printName: function() {
console.log(this._name);
},
// 公有方法
printAge: function() {
console.log(this.age);
}
};
// 访问公有属性和方法
console.log(obj.age); // 25
obj.printAge(); // 25
// 访问私有属性和方法
console.log(obj._name); // John
obj._printName(); // John
```
构造函数方式:
```javascript
function Person(name, age) {
// 私有属性
let _name = name;
// 公有属性
this.age = age;
// 私有方法
function _printName() {
console.log(_name);
}
// 公有方法
this.printAge = function() {
console.log(this.age);
}
// 特权方法
this.printName = function() {
_printName();
}
}
const person = new Person('John', 25);
// 访问公有属性和方法
console.log(person.age); // 25
person.printAge(); // 25
// 访问私有属性和方法(无法直接访问,需要通过特权方法间接访问)
person.printName(); // John
```
使用构造函数的方式可以更好地实现私有属性和方法,但需要注意的是,每个实例对象的公有方法都是独立的,会占用更多的内存。而对象字面量方式则可以更轻松地创建公有属性和方法,但无法实现真正的私有属性和方法。