JS 面向对象实现 学习总结
1.js是完全的面向对象语言,其中类的创建格式如下:
var person = {
name:“zhanghow”,
sex:“boy”,
eat:function(food){
console.log(“I’m eatting”,food)
}
} //注意的是字段的赋值是冒号取代=与Lua表的区别
字段的访问:1.person.name
2.person[“name”]
字段的添加直接类名.新加的字段名=内容(或者是" "方法)
字段的删除:delete + 字段的访问
代码:
person.eat(“apple”)
console.log(person.sex)
delete person.sex //删除字段
person.height = 182
console.log(person)
//形式二
function HelloWorld(){
this.name = “李四”,
this.print = function(){
return “js”
}
}
var hw = new HelloWorld()
console.log(hw.print()) //js
console.log(hw.name) //李四
2.两个变量的连接 + 或者 , (Lua中是…)
console.log(“ABC”,“abc”) //ABC abc
console.log(“ABC”+“abc”) //ABC abc
console.log(5,6) //5 6
console.log(5+6) //11
3.this使用规则:
//this的使用规则:1.在最外层外,this引用的是全局变量
// 2.函数内部根据调用方式的不同选择不同的对象
一般this出现在函数里时,只有在函数执行时才能确定this是什么,因 为this是指那个调用这个函数的对象。
x = 5;//全局变量
var obj = {
x:3,
doit:function(){
console.log(“method is called” + this.x)
}
}
obj.doit()//3 谁调用指向谁
var func = obj.doit;
func()//5 因为this指的是调用这个函数的对象,这里引用了全局变量
//applyy与call使用方式() function f(){ console.log(this.x); } var obj = {x:4} f.apply(obj) //4 通过apply调用f内部,this引用了对象obj f.call({x:5}) //5 console.log("ssssssssssss") var obj = { x:3, doit:function(){ console.log("method is called"+this.x) } } var obj2 = {x:4}; obj.doit() //3 obj.doit.apply(obj2) //4 function f(a,b){ console.log("this.x="+this.x+"a="+a+"b="+b); } f.apply({x:4},[1,2]) //作为第二个参数的数列中的元素都是函数f的参数 f.call({x:4},1,2) //从第二个参数起的参数都是函数f的参数
4.在类中的函数应避免This的歧义
在函数内若要引用“全局”This就要在函数体内定义一个变量self来接受This,此后才可避免二义性。
- JS 面向对象实现 学习总结
- js面向对象学习总结
- Logic Java阶段学习总结--猜拳游戏(面向对象实例)
- js面向对象总结
- js 面向对象学习6 几种面向对象写法的对比
- JS面向对象应用一(界面分离JS,多语言及校验组件实现)
- 黑马程序员学习log第五篇基础知识:JAVA的面向对象之集合总结
- js面向对象学习笔记之二(debug调试方法)
- .NET 7期同学面向对象学习中问题总结
- js面向对象总结
- 黑马程序员-----学习日记<5>----面向对象总结1
- JS 学习笔记--12---面向对象
- 《面向对象基础:C++实现》学习笔记之七
- js面向对象学习笔记之五(定时器)
- SAPUI5 - JS面向对象继承方式的实现
- OC学习--<猜拳游戏> 之 通过面向对象思想实现
- js 面向对象学习5 本地对象与内置对象
- 《面向对象基础:C++实现》学习笔记之一
- Js实现拖拽 --面向对象封装( 超详细中文注释)
- 黑马程序员_C#面向对象学习知识总结2