① 不常用写法
function Person(name, age){
this.name = name;
this.age = age; // self.age = age
// 把这个方法保存在每个对象中
this.sayHi = function(){
console.log('hello world!');
}
}
// 使用new关键字创建对象
let men = new Person('alex', 18)
men.sayHi() // hello world!
② 原型方式
function Person(name, age){
this.name = name;
this.age = age; // self.age = age
}
// 给构造函数的原型绑定方法,所有对象都它
Person.prototype,sayHi = function(){console.log('hello world!')}
let men = new Person('alex', 18)
// 对象找属性或方法(1)先找自己 (2)找不到就往上找它的原型
③ this参数问题
// 谁调用的这个方法 this就指向谁 this->self
Person.prototype,sayHi = function(){console.log(this.name,'hello world!')}
④ ES6中写法
class Point{
constructor(x, y){
this.x = x;
this.y = y;
} // 不要加逗号
toString(){
return `(${this.x}, ${this.y})`;
}
}
let p = new Point(10, 20);
console.log(p.x)
p.toString();
⑤ 补充知识:为js中String原型绑定一个sb方法;后续所有此类对象都拥有此方法
String.prototype.sb = function(){console.log('hello')}
'alex'.sb() // hello
$.ajax({
url: '/books/',
type: 'get',
})
.then(function(){
})
.catch(function(error){
})
? 基于 promise 用于浏览器和 node.js 的 http 客户端;(https://www.kancloud.cn/yunye/axios/234845)
$ npm install axios
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
// Optionally the request above could also be done as
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Axios.defaults.baseURL = 'https://www.luffycity.com/api/v1';
原文:https://www.cnblogs.com/hq82/p/11672924.html