git merge的三种操作merge, squash merge, 和rebase merge 举例来说:假设在master分支的B点拉出一个新的分支dev,经过一段时间开...
git merge的三种操作merge, squash merge, 和rebase merge 举例来说:假设在master分支的B点拉出一个新的分支dev,经过一段时间开...
前言 vuex作为vue官方出品的状态管理框架,以及其简单API设计、便捷的开发工具支持,在中大型的vue项目中得到很好的应用。作为flux架构的后起之秀,吸收了前辈redu...
这就没了?
Markdown源码是怎么被解析的之二:站在上帝的角度看整体代码既然要理解Markdown源码是怎样被处理的,我们需要先仔细思考一下一个Markdown编译器应该有什么构成: 词法解析器 帮助我们从源码中分析出Markdown规定的规...
想必教程大家已经看过,也动手做过一些Demo。倘若让大家用一句话概括'“vue是什么”,你的答案会是什么?。这里Vue官方教程也给出了自己的一句话解释。就是教程开头的第一句话...
// 每一个构造函数都有一个属性 原型 / 原型对象
function Student(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
// this.sayHi = function () {
// console.log('test');
// }
}
Student.prototype.sayHi = function () {
console.log('大家好,我是' + this.name);
}
// 通过Student构造函数,创建的对象,可以访问Student.prototype中的成员
var s1 = new Student('lilei', 18, '男');
var s2 = new Student('hmm', 18, '女');
s1.sayHi();
console.dir(s1);
// 当调用对象的属性或者方法的时候,先去找对象本身的属性/方法 ,如果对象没有该属性或者方法。此时去调用原型中的属性/方法
// 如果对象本身没有该属性/方法,原型中也没有该属性或者方法,此时会报错
// s1.__proto__ 对象的__proto__ 等于 构造函数的Student.prototype
// __proto__属性是非标准的属性
//
// console.log(s1.__proto__ === Student.prototype);
// console.dir(s1.__proto__);
// console.dir(Student.prototype);