我创建了一个函数:
function CheckHidden(el){ return $(el).css('display')!='none' }
Run Code Online (Sandbox Code Playgroud)
我的IDE警告我:
使用'new'调用时,构造函数返回的原始值将丢失
实际上当我这样称呼时:
var all = $("#catalog-body > div").filter(function(){return CheckHidden(this)})
Run Code Online (Sandbox Code Playgroud)
它不起作用,也不会将元素集减少到未隐藏的元素集.请向我解释这个问题.我缺乏知识.
请考虑以下代码段:
Class A {
private $a = 'foo';
public function F() {
return $this->a;
}
}
Class B extends A {
private $a = 'bar';
}
echo (new B)->F();
Run Code Online (Sandbox Code Playgroud)
结果是foo.嗯,这是一个既成事实,php以这种方式工作.但我想知道为什么.如果在parent的方法F()声明中我使用伪变量$this,则它引用对象上下文.所以,当我把孩子继承的方法F() $this变量是指当前的实例B有private $a = 'bar',不是吗?
更新
感谢AbraCadaver的回复.有一种情况对我来说还不清楚:如果$this变量在调用期间是B的对象,F()它如何访问父母的私有成员?我是否理解正确$this在父方法的实现中类似于:
public function F(B $obj) {
return $obj->a;
}
Run Code Online (Sandbox Code Playgroud)
所以,从翻译父类检查物业的知名度和在私人范围情况下,它subsitutes B $obj为A $obj