使用构造函数的方式创建一个函数,再用new的方式使用该函数,也是相当于创建了一个对象
function User ( name) {
this . name = name;
this . show = function ( ) {
console. log ( this . name) ;
function render ( ) {
console. log ( this ) ;
}
render ( ) ;
} ;
}
let xiaoming = new User ( '小明' ) ;
console. log ( xiaoming. show ( ) ) ;
①在一个对象中,当一个函数属于该对象的某个属性,那么称该函数为:方法/类方法
②如果对象中的函数并不属于某一个属性,那么这个函数,就只是函数
③方法/类方法 的this,指向的是当前对象
④函数 的this,指向的是window对象
⑤定义一个全局的变量,它是存在window对象中的
let obj = {
site: 'https' ,
show: function ( ) {
console. log ( this ) ;
function render ( ) {
console. log ( this ) ;
console. log ( this . name) ;
}
render ( ) ;
} ,
} ;
console. log ( obj. show ( ) ) ;
this的扩展1
let obj_cart = {
site: 'https://shopCart.com' ,
front: 'world-' ,
lists: [ 'js' , 'html' , 'css' ] ,
show: function ( ) {
const self = this ;
this . lists. map ( function ( value) {
console. log ( value) ;
console. log ( self. front + value) ;
} ) ;
} ,
} ;
console. log ( obj_cart. show ( ) ) ;
this的扩展2
这里的情形只针对部分函数
有些回调函数可以传递两个参数,那么第二个参数将指向对象的this传给回调函数,也就可以取到该对象了
let grades = {
class : 'class 4-' ,
mark: [ 11 , 22 , 33 ] ,
appear: function ( ) {
this . mark. map ( function ( item) {
console. log ( this . class + item) ;
} , this ) ;
} ,
} ;
console. log ( grades. appear ( ) ) ;